{ "info": { "author": "wikibusiness", "author_email": "osf@wikibusiness.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "async_armor\n===========\n\n:info: Graceful drop-in replacement for asyncio.shield\n\n.. image:: https://img.shields.io/travis/wikibusiness/async_armor.svg\n :target: https://travis-ci.org/wikibusiness/async_armor\n\n.. image:: https://img.shields.io/pypi/v/async_armor.svg\n :target: https://pypi.python.org/pypi/async_armor\n\nInstallation\n------------\n\n.. code-block:: shell\n\n pip install async_armor\n\nUsage\n-----\n\n.. code-block:: python\n\n import asyncio\n\n from async_armor import armor\n\n calls = 0\n\n async def call_shield():\n global calls\n await asyncio.sleep(1)\n calls += 1\n\n @armor\n async def call_deco():\n global calls\n await asyncio.sleep(1)\n calls += 1\n\n async def main():\n task = armor(call_shield())\n task.cancel()\n\n task = asyncio.ensure_future(call_deco())\n task.cancel()\n\n loop = asyncio.get_event_loop()\n\n loop.run_until_complete(main())\n\n armor.close()\n loop.run_until_complete(armor.wait_closed())\n\n assert calls == 2\n\n loop.close()\n\n\nPython 3.3+ is required\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wikibusiness/async_armor", "keywords": "asyncio", "license": "", "maintainer": "", "maintainer_email": "", "name": "async_armor", "package_url": "https://pypi.org/project/async_armor/", "platform": "", "project_url": "https://pypi.org/project/async_armor/", "project_urls": { "Homepage": "https://github.com/wikibusiness/async_armor" }, "release_url": "https://pypi.org/project/async_armor/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "Graceful drop-in replacement for asyncio.shield", "version": "0.0.2" }, "last_serial": 2872130, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dcdf3466cf4ba37cc6c68045a23d7163", "sha256": "331ad00e1173a24cc96a3388c5a1507c8a6dc9af7567f795302ca1331a02b4dd" }, "downloads": -1, "filename": "async_armor-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dcdf3466cf4ba37cc6c68045a23d7163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4551, "upload_time": "2017-05-12T20:30:48", "url": "https://files.pythonhosted.org/packages/d3/4a/73b892e5397589efb1b43de0ba4eb1e6efb7b2ab1ba33f7f4080013a32be/async_armor-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d2b19ebd092d6ce2c0e3ab74490d029a", "sha256": "db45d2646ecd98508b93853c8cb9d385274035ce15d77c76c6509b6750f9b829" }, "downloads": -1, "filename": "async_armor-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d2b19ebd092d6ce2c0e3ab74490d029a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4524, "upload_time": "2017-05-13T21:55:05", "url": "https://files.pythonhosted.org/packages/74/44/6f423606a4c08b6def59aef74073209669ba011de040fa0932be1fb85c7e/async_armor-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2b19ebd092d6ce2c0e3ab74490d029a", "sha256": "db45d2646ecd98508b93853c8cb9d385274035ce15d77c76c6509b6750f9b829" }, "downloads": -1, "filename": "async_armor-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d2b19ebd092d6ce2c0e3ab74490d029a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4524, "upload_time": "2017-05-13T21:55:05", "url": "https://files.pythonhosted.org/packages/74/44/6f423606a4c08b6def59aef74073209669ba011de040fa0932be1fb85c7e/async_armor-0.0.2.tar.gz" } ] }