%global _empty_manifest_terminate_build 0 Name: python-pymacaron Version: 2.0.345 Release: 1 Summary: REST microservice framework based on Flask, OpenAPI, gunicorn and celery, deployable towards GKE and Beanstalk License: BSD URL: https://github.com/pymacaron/pymacaron Source0: https://mirrors.nju.edu.cn/pypi/web/packages/18/13/dd652706c6bead1829fc075855591c8b6057e6260df5ff98b233aac392c6/pymacaron-2.0.345.tar.gz BuildArch: noarch %description ![pymacaron logo](https://github.com/pymacaron/pymacaron/blob/master/logo/pymacaron-logo-small.png) # Pymacaron Python microservice framework based on Flask, OpenAPI and Celery, deployable on GKE and Beanstalk PyMacaron's documentation is available at [http://pymacaron.com/](http://pymacaron.com/). This page dives deeper into internal implementation details. ## Deep dive ### Built-in endpoints The following endpoints are built-in into every pymacaron instance, based on [this swagger specification](https://github.com/pymacaron/pymacaron/blob/master/pymacaron/ping.yaml): ``` # Assuming you did in a separate terminal: # $ python server.py --port 8080 $ curl http://127.0.0.1:8080/ping {} $ curl http://127.0.0.1:8080/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } $ curl http://127.0.0.1:8080/auth/version { "error_description": "There is no Authorization header in the HTTP request", "error_id": "17f900c8-b456-4a64-8b2b-83c7d36353f6", "status": 401, "error": "AUTHORIZATION_HEADER_MISSING" } $ curl -H "Authorization: Bearer eyJpc3M[...]y8kNg" http://127.0.0.1:8080/auth/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } ``` ### Loading api clients from a standalone script It may come very handy within a standalone script to be able to call REST apis through the pymacaron framework, to get object marshalling and error handling out of the box. It is done as follows: ```python import flask from pymacaron import apipool from pymacaron.exceptions import is_error # Declare a Flask app and mock its context app = flask.Flask(__name__) with app.test_request_context(''): # Then load client libraries against a given set of libraries api = API(app) api.load_clients(apis=['login', 'search']) # And you can now call those apis seamlessly! result = ApiPool.login.client.do_login( ApiPool.login.model.LoginData( name='foobar', password='youdontwanttoknow' ) ) if is_error(result): log.error("Oops. Failed to login user") ``` ## Author Erwan Lemonnier
[github.com/pymacaron](https://github.com/pymacaron)
[github.com/erwan-lemonnier](https://github.com/erwan-lemonnier)
[www.linkedin.com/in/erwan-lemonnier/](https://www.linkedin.com/in/erwan-lemonnier/) %package -n python3-pymacaron Summary: REST microservice framework based on Flask, OpenAPI, gunicorn and celery, deployable towards GKE and Beanstalk Provides: python-pymacaron BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pymacaron ![pymacaron logo](https://github.com/pymacaron/pymacaron/blob/master/logo/pymacaron-logo-small.png) # Pymacaron Python microservice framework based on Flask, OpenAPI and Celery, deployable on GKE and Beanstalk PyMacaron's documentation is available at [http://pymacaron.com/](http://pymacaron.com/). This page dives deeper into internal implementation details. ## Deep dive ### Built-in endpoints The following endpoints are built-in into every pymacaron instance, based on [this swagger specification](https://github.com/pymacaron/pymacaron/blob/master/pymacaron/ping.yaml): ``` # Assuming you did in a separate terminal: # $ python server.py --port 8080 $ curl http://127.0.0.1:8080/ping {} $ curl http://127.0.0.1:8080/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } $ curl http://127.0.0.1:8080/auth/version { "error_description": "There is no Authorization header in the HTTP request", "error_id": "17f900c8-b456-4a64-8b2b-83c7d36353f6", "status": 401, "error": "AUTHORIZATION_HEADER_MISSING" } $ curl -H "Authorization: Bearer eyJpc3M[...]y8kNg" http://127.0.0.1:8080/auth/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } ``` ### Loading api clients from a standalone script It may come very handy within a standalone script to be able to call REST apis through the pymacaron framework, to get object marshalling and error handling out of the box. It is done as follows: ```python import flask from pymacaron import apipool from pymacaron.exceptions import is_error # Declare a Flask app and mock its context app = flask.Flask(__name__) with app.test_request_context(''): # Then load client libraries against a given set of libraries api = API(app) api.load_clients(apis=['login', 'search']) # And you can now call those apis seamlessly! result = ApiPool.login.client.do_login( ApiPool.login.model.LoginData( name='foobar', password='youdontwanttoknow' ) ) if is_error(result): log.error("Oops. Failed to login user") ``` ## Author Erwan Lemonnier
[github.com/pymacaron](https://github.com/pymacaron)
[github.com/erwan-lemonnier](https://github.com/erwan-lemonnier)
[www.linkedin.com/in/erwan-lemonnier/](https://www.linkedin.com/in/erwan-lemonnier/) %package help Summary: Development documents and examples for pymacaron Provides: python3-pymacaron-doc %description help ![pymacaron logo](https://github.com/pymacaron/pymacaron/blob/master/logo/pymacaron-logo-small.png) # Pymacaron Python microservice framework based on Flask, OpenAPI and Celery, deployable on GKE and Beanstalk PyMacaron's documentation is available at [http://pymacaron.com/](http://pymacaron.com/). This page dives deeper into internal implementation details. ## Deep dive ### Built-in endpoints The following endpoints are built-in into every pymacaron instance, based on [this swagger specification](https://github.com/pymacaron/pymacaron/blob/master/pymacaron/ping.yaml): ``` # Assuming you did in a separate terminal: # $ python server.py --port 8080 $ curl http://127.0.0.1:8080/ping {} $ curl http://127.0.0.1:8080/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } $ curl http://127.0.0.1:8080/auth/version { "error_description": "There is no Authorization header in the HTTP request", "error_id": "17f900c8-b456-4a64-8b2b-83c7d36353f6", "status": 401, "error": "AUTHORIZATION_HEADER_MISSING" } $ curl -H "Authorization: Bearer eyJpc3M[...]y8kNg" http://127.0.0.1:8080/auth/version { "apis":["ping"], "name": "helloworld", "pym_env":"staging", "version": "220120-2219-3820-a6f45b", } ``` ### Loading api clients from a standalone script It may come very handy within a standalone script to be able to call REST apis through the pymacaron framework, to get object marshalling and error handling out of the box. It is done as follows: ```python import flask from pymacaron import apipool from pymacaron.exceptions import is_error # Declare a Flask app and mock its context app = flask.Flask(__name__) with app.test_request_context(''): # Then load client libraries against a given set of libraries api = API(app) api.load_clients(apis=['login', 'search']) # And you can now call those apis seamlessly! result = ApiPool.login.client.do_login( ApiPool.login.model.LoginData( name='foobar', password='youdontwanttoknow' ) ) if is_error(result): log.error("Oops. Failed to login user") ``` ## Author Erwan Lemonnier
[github.com/pymacaron](https://github.com/pymacaron)
[github.com/erwan-lemonnier](https://github.com/erwan-lemonnier)
[www.linkedin.com/in/erwan-lemonnier/](https://www.linkedin.com/in/erwan-lemonnier/) %prep %autosetup -n pymacaron-2.0.345 %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-pymacaron -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Wed May 31 2023 Python_Bot - 2.0.345-1 - Package Spec generated