summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-xero-python.spec291
-rw-r--r--sources1
3 files changed, 293 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a1db9bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/xero_python-1.23.0.tar.gz
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
diff --git a/sources b/sources
new file mode 100644
index 0000000..87ab9d5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e61f45329fde75a022b16ef111c9b985 xero_python-1.23.0.tar.gz