Skip to main content

Werkzeug for asyncio

Project description

|travis-master| |coverall-master| |doc-master| |pypi-downloads| |pypi-lastrelease| |python-versions|
|project-status| |project-license| |project-format| |project-implementation|

.. |travis-master| image:: https://travis-ci.org/alfred82santa/aiowerkzeug.svg?branch=master
:target: https://travis-ci.org/alfred82santa/aiowerkzeug

.. |coverall-master| image:: https://coveralls.io/repos/alfred82santa/aiowerkzeug/badge.png?branch=master
:target: https://coveralls.io/r/alfred82santa/aiowerkzeug?branch=master

.. |doc-master| image:: https://readthedocs.org/projects/aiowerkzeug/badge/?version=latest
:target: https://readthedocs.org/projects/aiowerkzeug/?badge=latest
:alt: Documentation Status

.. |pypi-downloads| image:: https://pypip.in/download/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Downloads

.. |pypi-lastrelease| image:: https://pypip.in/version/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Latest Version

.. |python-versions| image:: https://pypip.in/py_versions/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Supported Python versions

.. |project-status| image:: https://pypip.in/status/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Development Status

.. |project-license| image:: https://pypip.in/license/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: License

.. |project-format| image:: https://pypip.in/format/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Download format

.. |project-implementation| image:: https://pypip.in/implementation/aiowerkzeug/badge.svg
:target: https://pypi.python.org/pypi/aiowerkzeug/
:alt: Supported Python implementations

===========
aiowerkzeug
===========

Library to make werkzeug working with asyncio.

--------
Features
--------

* Locals work on asyncio Tasks. `werkzeug.local.Local` or `werkzeug.local.LocalStack` must be patched
with :func:`aiowerkzeug.local.patch_local`

Patched `werkzeug.local.Local` or `werkzeug.local.LocalStack` use current `asyncio.tasks.Task`
to determine context.

* Decorator factory to mark coroutines to run in a context. Useful for Flask. It allows to run corountines
in new `asyncio.tasks.Task` inside a specific context.

For example, in Flask to run coroutines in Application context it is possible to create a decorator like that:

.. code-block:: python

def _get_app_context():
return current_app.app_context()

app_coroutine = partial(context_coroutine, ctx=_get_app_context)

@app_coroutine
def foo_bar():
print(current_app.debug)

@flask_app.route('/')
def caller():
asyncio.ensure_future(foo_bar())

* Asyncio HTTP server runner with reload

.. code-block:: bash

$ python aiowerkzeug/serving.py --reload app_test.app

----
TODO
----

* Form parser
* Debug middleware
* Static files middleware

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aiowerkzeug, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size aiowerkzeug-0.1.1.tar.gz (7.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page