diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:43:46 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:43:46 +0000 |
commit | 979539d52aa71a382a1aef86e3c55b78f9032d84 (patch) | |
tree | 88dbf572315c3ad6cb8aa4ae8b2b2d9f1cdc8c96 /python-xero-python.spec | |
parent | 96a969769ee87ea262b7a76681a7737b5c495632 (diff) |
automatic import of python-xero-python
Diffstat (limited to 'python-xero-python.spec')
-rw-r--r-- | python-xero-python.spec | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/python-xero-python.spec b/python-xero-python.spec new file mode 100644 index 0000000..cebbc48 --- /dev/null +++ b/python-xero-python.spec @@ -0,0 +1,291 @@ +%global _empty_manifest_terminate_build 0 +Name: python-xero-python +Version: 1.23.0 +Release: 1 +Summary: Official Python sdk for Xero API generated by OpenAPI spec for oAuth2 +License: MIT license +URL: https://pypi.org/project/xero-python/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4a/9c/72520e605efef9cef05d9d45987f4ef4c1449b3ba0492b2d6e36612c1a43/xero_python-1.23.0.tar.gz +BuildArch: noarch + + +%description +## Configuration +```python +# -*- coding: utf-8 -*- +import os +from functools import wraps +from io import BytesIO +from logging.config import dictConfig +from flask import Flask, session +from flask_oauthlib.contrib.client import OAuth, OAuth2Application +from flask_session import Session +from xero_python.accounting import AccountingApi +from xero_python.assets import AssetApi +from xero_python.project import ProjectApi +from xero_python.payrollau import PayrollAuApi +from xero_python.payrolluk import PayrollUkApi +from xero_python.payrollnz import PayrollNzApi +from xero_python.file import FilesApi +from xero_python.api_client import ApiClient, serialize +from xero_python.api_client.configuration import Configuration +from xero_python.api_client.oauth2 import OAuth2Token +from xero_python.exceptions import AccountingBadRequestException, PayrollUkBadRequestException +from xero_python.identity import IdentityApi +from xero_python.utils import getvalue +import logging_settings +from utils import jsonify, serialize_model +dictConfig(logging_settings.default_settings) +# configure main flask application +app = Flask(__name__) +app.config.from_object("default_settings") +app.config.from_pyfile("config.py", silent=True) +if app.config["ENV"] != "production": + # allow oauth2 loop to run over http (used for local testing only) + os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1" +# configure persistent session cache +Session(app) +# configure flask-oauthlib application +oauth = OAuth(app) +xero = oauth.remote_app( + name="xero", + version="2", + client_id=app.config["CLIENT_ID"], + client_secret=app.config["CLIENT_SECRET"], + endpoint_url="https://api.xero.com/", + authorization_url="https://login.xero.com/identity/connect/authorize", + access_token_url="https://identity.xero.com/connect/token", + refresh_token_url="https://identity.xero.com/connect/token", + scope="offline_access openid profile email accounting.transactions " + "accounting.transactions.read accounting.reports.read " + "accounting.journals.read accounting.settings accounting.settings.read " + "accounting.contacts accounting.contacts.read accounting.attachments " + "accounting.attachments.read assets projects " + "files " + "payroll.employees payroll.payruns payroll.payslip payroll.timesheets payroll.settings", +) # type: OAuth2Application +# configure xero-python sdk client +api_client = ApiClient( + Configuration( + debug=app.config["DEBUG"], + oauth2_token=OAuth2Token( + client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"] + ), + ), + pool_threads=1, +) +# configure token persistence and exchange point between flask-oauthlib and xero-python +@xero.tokengetter +@api_client.oauth2_token_getter +def obtain_xero_oauth2_token(): + return session.get("token") +@xero.tokensaver +@api_client.oauth2_token_saver +def store_xero_oauth2_token(token): + session["token"] = token + session.modified = True + +%package -n python3-xero-python +Summary: Official Python sdk for Xero API generated by OpenAPI spec for oAuth2 +Provides: python-xero-python +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-xero-python +## Configuration +```python +# -*- coding: utf-8 -*- +import os +from functools import wraps +from io import BytesIO +from logging.config import dictConfig +from flask import Flask, session +from flask_oauthlib.contrib.client import OAuth, OAuth2Application +from flask_session import Session +from xero_python.accounting import AccountingApi +from xero_python.assets import AssetApi +from xero_python.project import ProjectApi +from xero_python.payrollau import PayrollAuApi +from xero_python.payrolluk import PayrollUkApi +from xero_python.payrollnz import PayrollNzApi +from xero_python.file import FilesApi +from xero_python.api_client import ApiClient, serialize +from xero_python.api_client.configuration import Configuration +from xero_python.api_client.oauth2 import OAuth2Token +from xero_python.exceptions import AccountingBadRequestException, PayrollUkBadRequestException +from xero_python.identity import IdentityApi +from xero_python.utils import getvalue +import logging_settings +from utils import jsonify, serialize_model +dictConfig(logging_settings.default_settings) +# configure main flask application +app = Flask(__name__) +app.config.from_object("default_settings") +app.config.from_pyfile("config.py", silent=True) +if app.config["ENV"] != "production": + # allow oauth2 loop to run over http (used for local testing only) + os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1" +# configure persistent session cache +Session(app) +# configure flask-oauthlib application +oauth = OAuth(app) +xero = oauth.remote_app( + name="xero", + version="2", + client_id=app.config["CLIENT_ID"], + client_secret=app.config["CLIENT_SECRET"], + endpoint_url="https://api.xero.com/", + authorization_url="https://login.xero.com/identity/connect/authorize", + access_token_url="https://identity.xero.com/connect/token", + refresh_token_url="https://identity.xero.com/connect/token", + scope="offline_access openid profile email accounting.transactions " + "accounting.transactions.read accounting.reports.read " + "accounting.journals.read accounting.settings accounting.settings.read " + "accounting.contacts accounting.contacts.read accounting.attachments " + "accounting.attachments.read assets projects " + "files " + "payroll.employees payroll.payruns payroll.payslip payroll.timesheets payroll.settings", +) # type: OAuth2Application +# configure xero-python sdk client +api_client = ApiClient( + Configuration( + debug=app.config["DEBUG"], + oauth2_token=OAuth2Token( + client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"] + ), + ), + pool_threads=1, +) +# configure token persistence and exchange point between flask-oauthlib and xero-python +@xero.tokengetter +@api_client.oauth2_token_getter +def obtain_xero_oauth2_token(): + return session.get("token") +@xero.tokensaver +@api_client.oauth2_token_saver +def store_xero_oauth2_token(token): + session["token"] = token + session.modified = True + +%package help +Summary: Development documents and examples for xero-python +Provides: python3-xero-python-doc +%description help +## Configuration +```python +# -*- coding: utf-8 -*- +import os +from functools import wraps +from io import BytesIO +from logging.config import dictConfig +from flask import Flask, session +from flask_oauthlib.contrib.client import OAuth, OAuth2Application +from flask_session import Session +from xero_python.accounting import AccountingApi +from xero_python.assets import AssetApi +from xero_python.project import ProjectApi +from xero_python.payrollau import PayrollAuApi +from xero_python.payrolluk import PayrollUkApi +from xero_python.payrollnz import PayrollNzApi +from xero_python.file import FilesApi +from xero_python.api_client import ApiClient, serialize +from xero_python.api_client.configuration import Configuration +from xero_python.api_client.oauth2 import OAuth2Token +from xero_python.exceptions import AccountingBadRequestException, PayrollUkBadRequestException +from xero_python.identity import IdentityApi +from xero_python.utils import getvalue +import logging_settings +from utils import jsonify, serialize_model +dictConfig(logging_settings.default_settings) +# configure main flask application +app = Flask(__name__) +app.config.from_object("default_settings") +app.config.from_pyfile("config.py", silent=True) +if app.config["ENV"] != "production": + # allow oauth2 loop to run over http (used for local testing only) + os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1" +# configure persistent session cache +Session(app) +# configure flask-oauthlib application +oauth = OAuth(app) +xero = oauth.remote_app( + name="xero", + version="2", + client_id=app.config["CLIENT_ID"], + client_secret=app.config["CLIENT_SECRET"], + endpoint_url="https://api.xero.com/", + authorization_url="https://login.xero.com/identity/connect/authorize", + access_token_url="https://identity.xero.com/connect/token", + refresh_token_url="https://identity.xero.com/connect/token", + scope="offline_access openid profile email accounting.transactions " + "accounting.transactions.read accounting.reports.read " + "accounting.journals.read accounting.settings accounting.settings.read " + "accounting.contacts accounting.contacts.read accounting.attachments " + "accounting.attachments.read assets projects " + "files " + "payroll.employees payroll.payruns payroll.payslip payroll.timesheets payroll.settings", +) # type: OAuth2Application +# configure xero-python sdk client +api_client = ApiClient( + Configuration( + debug=app.config["DEBUG"], + oauth2_token=OAuth2Token( + client_id=app.config["CLIENT_ID"], client_secret=app.config["CLIENT_SECRET"] + ), + ), + pool_threads=1, +) +# configure token persistence and exchange point between flask-oauthlib and xero-python +@xero.tokengetter +@api_client.oauth2_token_getter +def obtain_xero_oauth2_token(): + return session.get("token") +@xero.tokensaver +@api_client.oauth2_token_saver +def store_xero_oauth2_token(token): + session["token"] = token + session.modified = True + +%prep +%autosetup -n xero-python-1.23.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-xero-python -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.23.0-1 +- Package Spec generated |