summaryrefslogtreecommitdiff
path: root/python-flask-responsebuilder.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-flask-responsebuilder.spec')
-rw-r--r--python-flask-responsebuilder.spec288
1 files changed, 288 insertions, 0 deletions
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