%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 - 1.23.0-1 - Package Spec generated