{ "info": { "author": "Carlo Pires", "author_email": "carlopires@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing", "Topic :: Utilities" ], "description": "aioawait\n========\n\nThis package implements two primitives (**await** and **spawn**) on top\nof asyncio infrastructure of Python 3. This two functions allow us to call\nasynchronous functions from synchronous code. \n \nInstallation\n------------\n\n.. code:: bash\n\n pip3 install aioawait\n\nExample\n-------\n\n.. code:: python\n\n from asyncio.tasks import coroutine, sleep, async\n from aioawait import await, spawn\n \n @coroutine\n def monitor(name, size, total):\n while True:\n print('\\ttotal', name, total)\n yield from sleep(1)\n \n @coroutine\n def counter(name, size, total):\n \"\"\"sums into total all numbers from 0 to size\"\"\"\n m = async(monitor(name, size, total))\n \n # monitor could be called using spawn. eg:\n # m = spawn(monitor(name, size, total))\n \n for n in range(size):\n total[0] += n\n if n % 5 == 0:\n print('sleeping', name, n)\n yield from sleep(2)\n else:\n print('counting', name, n)\n yield\n \n # stops monitor\n m.cancel()\n \n return name, 'done', n, total\n \n class Counter:\n \"\"\"note that this class has no asynchronous code\"\"\"\n \n def __init__(self):\n self.cb = spawn(counter('b', 40, [0]))\n \n @property\n def counter_a(self):\n return await(counter('a', 20, [0]))\n \n @property\n def counter_b(self):\n return await(self.cb)\n \n if __name__ == '__main__':\n c = Counter()\n print(c.counter_a)\n print(c.counter_b)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/carlopires/aioawait", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "aioawait", "package_url": "https://pypi.org/project/aioawait/", "platform": "any", "project_url": "https://pypi.org/project/aioawait/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/carlopires/aioawait" }, "release_url": "https://pypi.org/project/aioawait/8/", "requires_dist": null, "requires_python": null, "summary": "Call asynchronous functions of Python 3.4.3 asyncio infrastructure from synchronous code", "version": "8" }, "last_serial": 1468485, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "5eaa9d503040d3fd758265f203014117", "sha256": "4345d17ecbd211b658ad492bec30d8f82c27edbe72dd040e390e0cae73085844" }, "downloads": -1, "filename": "aioawait-1.tar.gz", "has_sig": false, "md5_digest": "5eaa9d503040d3fd758265f203014117", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2371, "upload_time": "2014-07-20T15:36:36", "url": "https://files.pythonhosted.org/packages/66/64/fdedd760f8bf8b711e3f507fa4eb382aeea805c0dbb6a332d6a9b1ac0968/aioawait-1.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "e440993947ea0e619a5d2181da70a77e", "sha256": "16acb2fa63a088df6b5e2ffeb3e8df1932dc6e07ef1ec9a201ed391fefd54855" }, "downloads": -1, "filename": "aioawait-2.tar.gz", "has_sig": false, "md5_digest": "e440993947ea0e619a5d2181da70a77e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2365, "upload_time": "2014-07-20T15:44:07", "url": "https://files.pythonhosted.org/packages/1a/f3/4f11f19d548e30168bd22519c5b589256f3cb592561625665964e5e26c47/aioawait-2.tar.gz" } ], "3": [ { "comment_text": "", "digests": { "md5": "e969b3d56f5053f6e4207c920d926662", "sha256": "65dd7d6554904fdf84613788655bec89af840d9ff6ad8bdb2b9085e52c7e70e8" }, "downloads": -1, "filename": "aioawait-3.tar.gz", "has_sig": false, "md5_digest": "e969b3d56f5053f6e4207c920d926662", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2873, "upload_time": "2014-08-20T13:18:10", "url": "https://files.pythonhosted.org/packages/15/c9/b40b368740e9dbf21506052631d6d03d66896169da5b92d7b4c289d1a9f6/aioawait-3.tar.gz" } ], "5": [ { "comment_text": "", "digests": { "md5": "87d348d3e0be8cab92389916bde86f74", "sha256": "624e596a506124a98c0a6f6c04f9a61f087066fd0f49d0ea8af2ab33d28ee531" }, "downloads": -1, "filename": "aioawait-5.tar.gz", "has_sig": false, "md5_digest": "87d348d3e0be8cab92389916bde86f74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2835, "upload_time": "2014-09-06T20:38:49", "url": "https://files.pythonhosted.org/packages/59/4d/75f7d6eff219cabb2e62688917c90cc0caad952f7cf87cbd44fa1e121046/aioawait-5.tar.gz" } ], "7": [ { "comment_text": "", "digests": { "md5": "d0f4be3f91110aaa73753bb22b8385e5", "sha256": "277032d9964692a62bdcd640d167d527e8b73b085eac5168ff519f11786142a3" }, "downloads": -1, "filename": "aioawait-7.tar.gz", "has_sig": false, "md5_digest": "d0f4be3f91110aaa73753bb22b8385e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3131, "upload_time": "2014-09-18T20:38:07", "url": "https://files.pythonhosted.org/packages/53/a6/494f6339d3eb8bf584acdebe8a488c55a9f43e7bca7d1982db0054ba5bd7/aioawait-7.tar.gz" } ], "8": [ { "comment_text": "", "digests": { "md5": "f3f9e667461b19eb76599b7194a061fa", "sha256": "58f7da971aa2016c90cf77f58596e3b27351d97454ecbf9702312a20d9af2eab" }, "downloads": -1, "filename": "aioawait-8.tar.gz", "has_sig": false, "md5_digest": "f3f9e667461b19eb76599b7194a061fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2015-03-19T13:31:54", "url": "https://files.pythonhosted.org/packages/59/74/9478068823434e5b2302a91e307f340d9fa7cfc79c76814506e9991301f7/aioawait-8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f3f9e667461b19eb76599b7194a061fa", "sha256": "58f7da971aa2016c90cf77f58596e3b27351d97454ecbf9702312a20d9af2eab" }, "downloads": -1, "filename": "aioawait-8.tar.gz", "has_sig": false, "md5_digest": "f3f9e667461b19eb76599b7194a061fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2015-03-19T13:31:54", "url": "https://files.pythonhosted.org/packages/59/74/9478068823434e5b2302a91e307f340d9fa7cfc79c76814506e9991301f7/aioawait-8.tar.gz" } ] }