diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-flask-responsebuilder.spec | 288 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 290 insertions, 0 deletions
@@ -0,0 +1 @@ +/Flask-ResponseBuilder-2.0.16.tar.gz diff --git a/python-flask-responsebuilder.spec b/python-flask-responsebuilder.spec new file mode 100644 index 0000000..7da2249 --- /dev/null +++ b/python-flask-responsebuilder.spec @@ -0,0 +1,288 @@ +%global _empty_manifest_terminate_build 0 +Name: python-Flask-ResponseBuilder +Version: 2.0.16 +Release: 1 +Summary: Implementations of flask response in many format notation +License: MIT +URL: https://github.com/cs91chris/flask_response_builder +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c5/49/ad618741557f04679f313b2b44e8b8c1303811de9a29fa62eddb1a77ad5a/Flask-ResponseBuilder-2.0.16.tar.gz +BuildArch: noarch + + +%description +|download| |version| +Implementations of flask response in many formats: base64, csv, json, xml, html, yaml. +You can create your own builder extending ``Builder`` class and registering it with ``register_builder`` method. +Every builders are registered as attribute of ``ResponseBuilder`` class so you can invoke method from this class +with builder's name and it automatically create a response with that builder. +Also you can used ``Builder`` without response by invoking static methods: ``to_me``, ``to_dict``. +Based on PyYAML, xmltodict, dicttoxml. See their documentation for other options. +- Decorator for http response status ``204 NO_CONTENT`` +- Response based on ``Accept`` header of request +- Response based on format parameter (query string) +- template_or_json: response based on xhr request (deprecated: works only with old js library) +- Support for case notation checker and converter, see ``Case`` utility class. +- ``Transformer``: utility class for data notation conversion +**NOTE**: From 2.1.11 the ``dicttoxml`` package seems to be abandoned, so a copy of module ``dicttoxml`` +is ported in this package to fix deprecation warning, but if ``dicttoxml`` is installed it has priority. +In future will be removed and the internal module will be improved. +Quickstart +~~~~~~~~~~ +Install ``flask_response_builder`` using ``pip``: + $ pip install Flask-ResponseBuilder +Then import it into your project: + $ from flask_response_builder import ResponseBuilder +Example usage +^^^^^^^^^^^^^ + app = Flask(__name__) + app.config['RB_HTML_DEFAULT_TEMPLATE'] = 'response.html' + rb = ResponseBuilder(app) + @app.route('/nocontent') + @rb.no_content + def nocontent(): + pass + @app.route('/xhr') + @rb.template_or_json('response.html') + def test_xhr(): + return data + @app.route('/onaccept') + @rb.on_accept(acceptable=['application/json', 'application/xml']) + def test_accept(): + return data + @app.route('/format') + @rb.on_format() + def test_format(): + return data +For every registered builder you can explicitly use them in two ways: + @app.route('/decorator') + @rb.response('json') + def test_decorator(): + return data, 200, {'header': 'header'} + @_app.route('/csv') + def index_csv(): + builder = rb.csv(filename='file.csv') + return builder((data, 200)) +Configuration +^^^^^^^^^^^^^ + 1. ``RB_DEFAULT_RESPONSE_FORMAT``: *(default: 'application/json')* + 2. ``RB_DEFAULT_ACCEPTABLE_MIMETYPES``: *(default: a list of all supported mimetypes)* + 3. ``RB_DEFAULT_ENCODE``: *(default: 'utf-8')* + 4. ``RB_DEFAULT_DUMP_INDENT``: *(default: None)* + 5. ``RB_FORMAT_KEY``: *(default: 'format')* + 6. ``RB_BASE64_ALTCHARS``: *(default: None)* + 7. ``RB_HTML_DEFAULT_TEMPLATE``: *(default: None)* + 8. ``RB_HTML_AS_TABLE``: *(default: True)* + 9. ``RB_YAML_ALLOW_UNICODE``: *(default: True)* + 10. ``RB_CSV_DEFAULT_NAME``: *(default: 'filename')* + 11. ``RB_CSV_DELIMITER``: *(default: ';')* + 12. ``RB_CSV_QUOTING_CHAR``: *(default: '"')* + 13. ``RB_CSV_DIALECT``: *(default: 'excel-tab')* + 14. ``RB_XML_CDATA``: *(default: False)* + 15. ``RB_XML_ROOT``: *(default: 'ROOT')* + 16. ``RB_FLATTEN_PREFIX``: *(default: '')* + 17. ``RB_FLATTEN_SEPARATOR``: *(default: '_')* + 18. ``RB_JSONP_PARAM``: *(default: 'callback')* if empty or None jsonp is disabled +License MIT + +%package -n python3-Flask-ResponseBuilder +Summary: Implementations of flask response in many format notation +Provides: python-Flask-ResponseBuilder +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-Flask-ResponseBuilder +|download| |version| +Implementations of flask response in many formats: base64, csv, json, xml, html, yaml. +You can create your own builder extending ``Builder`` class and registering it with ``register_builder`` method. +Every builders are registered as attribute of ``ResponseBuilder`` class so you can invoke method from this class +with builder's name and it automatically create a response with that builder. +Also you can used ``Builder`` without response by invoking static methods: ``to_me``, ``to_dict``. +Based on PyYAML, xmltodict, dicttoxml. See their documentation for other options. +- Decorator for http response status ``204 NO_CONTENT`` +- Response based on ``Accept`` header of request +- Response based on format parameter (query string) +- template_or_json: response based on xhr request (deprecated: works only with old js library) +- Support for case notation checker and converter, see ``Case`` utility class. +- ``Transformer``: utility class for data notation conversion +**NOTE**: From 2.1.11 the ``dicttoxml`` package seems to be abandoned, so a copy of module ``dicttoxml`` +is ported in this package to fix deprecation warning, but if ``dicttoxml`` is installed it has priority. +In future will be removed and the internal module will be improved. +Quickstart +~~~~~~~~~~ +Install ``flask_response_builder`` using ``pip``: + $ pip install Flask-ResponseBuilder +Then import it into your project: + $ from flask_response_builder import ResponseBuilder +Example usage +^^^^^^^^^^^^^ + app = Flask(__name__) + app.config['RB_HTML_DEFAULT_TEMPLATE'] = 'response.html' + rb = ResponseBuilder(app) + @app.route('/nocontent') + @rb.no_content + def nocontent(): + pass + @app.route('/xhr') + @rb.template_or_json('response.html') + def test_xhr(): + return data + @app.route('/onaccept') + @rb.on_accept(acceptable=['application/json', 'application/xml']) + def test_accept(): + return data + @app.route('/format') + @rb.on_format() + def test_format(): + return data +For every registered builder you can explicitly use them in two ways: + @app.route('/decorator') + @rb.response('json') + def test_decorator(): + return data, 200, {'header': 'header'} + @_app.route('/csv') + def index_csv(): + builder = rb.csv(filename='file.csv') + return builder((data, 200)) +Configuration +^^^^^^^^^^^^^ + 1. ``RB_DEFAULT_RESPONSE_FORMAT``: *(default: 'application/json')* + 2. ``RB_DEFAULT_ACCEPTABLE_MIMETYPES``: *(default: a list of all supported mimetypes)* + 3. ``RB_DEFAULT_ENCODE``: *(default: 'utf-8')* + 4. ``RB_DEFAULT_DUMP_INDENT``: *(default: None)* + 5. ``RB_FORMAT_KEY``: *(default: 'format')* + 6. ``RB_BASE64_ALTCHARS``: *(default: None)* + 7. ``RB_HTML_DEFAULT_TEMPLATE``: *(default: None)* + 8. ``RB_HTML_AS_TABLE``: *(default: True)* + 9. ``RB_YAML_ALLOW_UNICODE``: *(default: True)* + 10. ``RB_CSV_DEFAULT_NAME``: *(default: 'filename')* + 11. ``RB_CSV_DELIMITER``: *(default: ';')* + 12. ``RB_CSV_QUOTING_CHAR``: *(default: '"')* + 13. ``RB_CSV_DIALECT``: *(default: 'excel-tab')* + 14. ``RB_XML_CDATA``: *(default: False)* + 15. ``RB_XML_ROOT``: *(default: 'ROOT')* + 16. ``RB_FLATTEN_PREFIX``: *(default: '')* + 17. ``RB_FLATTEN_SEPARATOR``: *(default: '_')* + 18. ``RB_JSONP_PARAM``: *(default: 'callback')* if empty or None jsonp is disabled +License MIT + +%package help +Summary: Development documents and examples for Flask-ResponseBuilder +Provides: python3-Flask-ResponseBuilder-doc +%description help +|download| |version| +Implementations of flask response in many formats: base64, csv, json, xml, html, yaml. +You can create your own builder extending ``Builder`` class and registering it with ``register_builder`` method. +Every builders are registered as attribute of ``ResponseBuilder`` class so you can invoke method from this class +with builder's name and it automatically create a response with that builder. +Also you can used ``Builder`` without response by invoking static methods: ``to_me``, ``to_dict``. +Based on PyYAML, xmltodict, dicttoxml. See their documentation for other options. +- Decorator for http response status ``204 NO_CONTENT`` +- Response based on ``Accept`` header of request +- Response based on format parameter (query string) +- template_or_json: response based on xhr request (deprecated: works only with old js library) +- Support for case notation checker and converter, see ``Case`` utility class. +- ``Transformer``: utility class for data notation conversion +**NOTE**: From 2.1.11 the ``dicttoxml`` package seems to be abandoned, so a copy of module ``dicttoxml`` +is ported in this package to fix deprecation warning, but if ``dicttoxml`` is installed it has priority. +In future will be removed and the internal module will be improved. +Quickstart +~~~~~~~~~~ +Install ``flask_response_builder`` using ``pip``: + $ pip install Flask-ResponseBuilder +Then import it into your project: + $ from flask_response_builder import ResponseBuilder +Example usage +^^^^^^^^^^^^^ + app = Flask(__name__) + app.config['RB_HTML_DEFAULT_TEMPLATE'] = 'response.html' + rb = ResponseBuilder(app) + @app.route('/nocontent') + @rb.no_content + def nocontent(): + pass + @app.route('/xhr') + @rb.template_or_json('response.html') + def test_xhr(): + return data + @app.route('/onaccept') + @rb.on_accept(acceptable=['application/json', 'application/xml']) + def test_accept(): + return data + @app.route('/format') + @rb.on_format() + def test_format(): + return data +For every registered builder you can explicitly use them in two ways: + @app.route('/decorator') + @rb.response('json') + def test_decorator(): + return data, 200, {'header': 'header'} + @_app.route('/csv') + def index_csv(): + builder = rb.csv(filename='file.csv') + return builder((data, 200)) +Configuration +^^^^^^^^^^^^^ + 1. ``RB_DEFAULT_RESPONSE_FORMAT``: *(default: 'application/json')* + 2. ``RB_DEFAULT_ACCEPTABLE_MIMETYPES``: *(default: a list of all supported mimetypes)* + 3. ``RB_DEFAULT_ENCODE``: *(default: 'utf-8')* + 4. ``RB_DEFAULT_DUMP_INDENT``: *(default: None)* + 5. ``RB_FORMAT_KEY``: *(default: 'format')* + 6. ``RB_BASE64_ALTCHARS``: *(default: None)* + 7. ``RB_HTML_DEFAULT_TEMPLATE``: *(default: None)* + 8. ``RB_HTML_AS_TABLE``: *(default: True)* + 9. ``RB_YAML_ALLOW_UNICODE``: *(default: True)* + 10. ``RB_CSV_DEFAULT_NAME``: *(default: 'filename')* + 11. ``RB_CSV_DELIMITER``: *(default: ';')* + 12. ``RB_CSV_QUOTING_CHAR``: *(default: '"')* + 13. ``RB_CSV_DIALECT``: *(default: 'excel-tab')* + 14. ``RB_XML_CDATA``: *(default: False)* + 15. ``RB_XML_ROOT``: *(default: 'ROOT')* + 16. ``RB_FLATTEN_PREFIX``: *(default: '')* + 17. ``RB_FLATTEN_SEPARATOR``: *(default: '_')* + 18. ``RB_JSONP_PARAM``: *(default: 'callback')* if empty or None jsonp is disabled +License MIT + +%prep +%autosetup -n Flask-ResponseBuilder-2.0.16 + +%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-Flask-ResponseBuilder -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.16-1 +- Package Spec generated @@ -0,0 +1 @@ +3e626b58849b57e8a753527650cb5dbb Flask-ResponseBuilder-2.0.16.tar.gz |
