{ "info": { "author": "alfred82santa", "author_email": "alfred82santa@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.5" ], "description": "|travis-master| |coverall-master| |doc-master| |pypi-downloads| |pypi-lastrelease| |python-versions|\n|project-status| |project-license| |project-format| |project-implementation|\n\n.. |travis-master| image:: https://travis-ci.org/alfred82santa/aiowerkzeug.svg?branch=master\n :target: https://travis-ci.org/alfred82santa/aiowerkzeug\n\n.. |coverall-master| image:: https://coveralls.io/repos/alfred82santa/aiowerkzeug/badge.svg?branch=master&service=github\n :target: https://coveralls.io/r/alfred82santa/aiowerkzeug?branch=master\n\n.. |doc-master| image:: https://readthedocs.org/projects/aiowerkzeug/badge/?version=latest\n :target: https://readthedocs.org/projects/aiowerkzeug/?badge=latest\n :alt: Documentation Status\n\n.. |pypi-downloads| image:: https://img.shields.io/pypi/dm/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Downloads\n\n.. |pypi-lastrelease| image:: https://img.shields.io/pypi/v/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Latest Version\n\n.. |python-versions| image:: https://img.shields.io/pypi/pyversions/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Supported Python versions\n\n.. |project-status| image:: https://img.shields.io/pypi/status/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Development Status\n\n.. |project-license| image:: https://img.shields.io/pypi/l/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: License\n\n.. |project-format| image:: https://img.shields.io/pypi/format/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Download format\n\n.. |project-implementation| image:: https://img.shields.io/pypi/implementation/aiowerkzeug.svg\n :target: https://pypi.python.org/pypi/aiowerkzeug/\n :alt: Supported Python implementations\n\n===========\naiowerkzeug\n===========\n\nLibrary to make werkzeug working with asyncio.\n\n---------\nChangelog\n---------\n\nVersion 0.2.0\n=============\n\n* Use Python 3.5 async syntax.\n\n* New `~keep_context_factory`. It works like `~context_coroutine`,\n but simple code.\n\n* Async version of Local, LocalStack and LocalManager. They implement `__release_local__` method.\n\n--------\nFeatures\n--------\n\n* Async versions of Local, LocalStack and LocalManager.\n\n* Locals work on asyncio Tasks. `werkzeug.local.Local` or `werkzeug.local.LocalStack` must be patched\n with `aiowerkzeug.local.patch_local`\n\n Patched `werkzeug.local.Local` or `werkzeug.local.LocalStack` use current `asyncio.tasks.Task`\n to determine context.\n\n* Decorator factory to mark coroutines to run in a context. Useful for Flask. It allows to run corountines\n in new `asyncio.tasks.Task` inside a specific context.\n\n For example, in Flask to run coroutines in Application context it is possible to create a decorator like that:\n\n .. code-block:: python\n\n def _get_app_context():\n return current_app.app_context()\n\n app_coroutine = partial(context_coroutine, ctx=_get_app_context)\n\n @app_coroutine\n def foo_bar():\n print(current_app.debug)\n\n @flask_app.route('/')\n def caller():\n asyncio.ensure_future(foo_bar())\n\n* Asyncio HTTP server runner with reload\n\n .. code-block:: bash\n\n $ python aiowerkzeug/serving.py --reload app_test.app\n\n----\nTODO\n----\n\n* Form parser\n* Debug middleware\n* Static files middleware", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alfred82santa/aiowerkzeug", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "aiowerkzeug", "package_url": "https://pypi.org/project/aiowerkzeug/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/aiowerkzeug/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/alfred82santa/aiowerkzeug" }, "release_url": "https://pypi.org/project/aiowerkzeug/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Werkzeug for asyncio", "version": "0.2.0" }, "last_serial": 2204247, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f9a9977546e11f2cd04de5d28495464a", "sha256": "224715bea169b995c25036e5ce87e40ad95c51302cfe6d152fc5a2c69974d0d2" }, "downloads": -1, "filename": "aiowerkzeug-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f9a9977546e11f2cd04de5d28495464a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3184, "upload_time": "2015-08-27T17:22:04", "url": "https://files.pythonhosted.org/packages/18/31/94d29a78690e21a835c69b68434754dff363e79ba479668ef278b35ca586/aiowerkzeug-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c57ed4e68801f96a7f64f4c250cc649d", "sha256": "182a9c8ba60d4866151ac40737825980bd01289a6cfde7ae71e48d5a314fde25" }, "downloads": -1, "filename": "aiowerkzeug-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c57ed4e68801f96a7f64f4c250cc649d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7336, "upload_time": "2015-09-01T00:03:01", "url": "https://files.pythonhosted.org/packages/b5/ac/52c45bdf62981c2f633a65a33663c0e7c488721a5f1aa0561955ffaf4c72/aiowerkzeug-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ed23dd49fa794dd916e74f4f6f62f3df", "sha256": "c0a213fc4692c0fa5af065c20e240f0748a9b22b31f0e36076b36e48eee44e82" }, "downloads": -1, "filename": "aiowerkzeug-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ed23dd49fa794dd916e74f4f6f62f3df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7337, "upload_time": "2015-09-01T00:06:08", "url": "https://files.pythonhosted.org/packages/2e/91/73d290e580e299a0b2b78f2fc7f5afab0582080f67a71fabf05eded88db5/aiowerkzeug-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "70ecc796934f33e4dade45e19e143ffb", "sha256": "ad4fb4f8c21cefc79f33f64623d424ceec002f923f261160fc9b255ee192c7dc" }, "downloads": -1, "filename": "aiowerkzeug-0.2.0.tar.gz", "has_sig": false, "md5_digest": "70ecc796934f33e4dade45e19e143ffb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7870, "upload_time": "2016-07-05T19:37:25", "url": "https://files.pythonhosted.org/packages/c2/d3/a8511bc9161490f25fd3bbfe926f70b4e18a3958832059c11a43a7d7e365/aiowerkzeug-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70ecc796934f33e4dade45e19e143ffb", "sha256": "ad4fb4f8c21cefc79f33f64623d424ceec002f923f261160fc9b255ee192c7dc" }, "downloads": -1, "filename": "aiowerkzeug-0.2.0.tar.gz", "has_sig": false, "md5_digest": "70ecc796934f33e4dade45e19e143ffb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7870, "upload_time": "2016-07-05T19:37:25", "url": "https://files.pythonhosted.org/packages/c2/d3/a8511bc9161490f25fd3bbfe926f70b4e18a3958832059c11a43a7d7e365/aiowerkzeug-0.2.0.tar.gz" } ] }