{ "info": { "author": "Michal Charemza", "author_email": "michal@charemza.name", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# aiomemoizettl [![CircleCI](https://circleci.com/gh/michalc/aiomemoizettl.svg?style=svg)](https://circleci.com/gh/michalc/aiomemoizettl) [![Test Coverage](https://api.codeclimate.com/v1/badges/8dcbbf352c803cb8147d/test_coverage)](https://codeclimate.com/github/michalc/aiomemoizettl/test_coverage)\n\nMemoize asyncio Python calls with a per-result TTL\n\n\n## Installation\n\n```base\npip install aiomemoizettl\n```\n\n\n## Usage\n\nFor a coroutine whose arguments are hashable, you can create a _memoized_ version by passing it to `memoize_ttl`, along with a function that converts its return value to a TTL.\n\nFor example, the below\n\n```python\nimport asyncio\nfrom aiomemoizettl import memoize_ttl\n\nasync def main():\n memoized = memoize_ttl(coro, get_ttl=lambda result: result['ttl'])\n results = await asyncio.gather(*[\n memoized(1),\n memoized(2),\n ])\n await asyncio.sleep(1)\n\n results = await asyncio.gather(*[\n memoized(1),\n memoized(2), # Will used the cached value of `coro(2)`\n ])\n\nasync def coro(value):\n print('Inside coro', value)\n return {'ttl': value, 'some-other': 'data'}\n\nloop = asyncio.get_event_loop()\nloop.run_until_complete(main())\nloop.close()\n```\n\nwill output\n\n```\nInside coro 1\nInside coro 2\nInside coro 1\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/michalc/aiomemoizettl", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aiomemoizettl", "package_url": "https://pypi.org/project/aiomemoizettl/", "platform": "", "project_url": "https://pypi.org/project/aiomemoizettl/", "project_urls": { "Homepage": "https://github.com/michalc/aiomemoizettl" }, "release_url": "https://pypi.org/project/aiomemoizettl/0.0.3/", "requires_dist": null, "requires_python": "~=3.5", "summary": "Memoize asyncio Python calls with a per-result TTL", "version": "0.0.3" }, "last_serial": 5105597, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b062783e39ada89f214fbc788abcbb83", "sha256": "9456240d1a929aeb103e6738d13612b8cb3ae3b50a2829bc37598699840e7c90" }, "downloads": -1, "filename": "aiomemoizettl-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b062783e39ada89f214fbc788abcbb83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 3162, "upload_time": "2019-03-31T18:24:35", "url": "https://files.pythonhosted.org/packages/6a/d4/db7f5c78f829f21b8fdbfd52e8b6c742ecf0d0877b02e26386fecbcc2394/aiomemoizettl-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce84eba11a600be36490b78b0195d016", "sha256": "d10e42e8942ee5d984198bb0dd9d8ba791cfa4ec6c0936721ad91f0aa6ef96b6" }, "downloads": -1, "filename": "aiomemoizettl-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ce84eba11a600be36490b78b0195d016", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 2065, "upload_time": "2019-03-31T18:24:37", "url": "https://files.pythonhosted.org/packages/f9/f3/3037391b0d3eb74840c3f6e9d6856a7ef2eba4be063850d1a2f1886f2156/aiomemoizettl-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ea72fc99fcf4ca194110955ec774b762", "sha256": "ab788037b581c0e1e73d050683af6d0627b62a88a463cb1fed03d57cb0919241" }, "downloads": -1, "filename": "aiomemoizettl-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ea72fc99fcf4ca194110955ec774b762", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 3160, "upload_time": "2019-04-05T20:40:23", "url": "https://files.pythonhosted.org/packages/f1/dc/607dd7d6d819465758ca8e5e7877ee4a856080e2619b3e6ee89329036304/aiomemoizettl-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3e3ba86a931818a598a43b9a6bc628f", "sha256": "519c06a2fa81e8040b75bcf2ac74e597687026b84c4c8e5f09ade08a8ffbcff3" }, "downloads": -1, "filename": "aiomemoizettl-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f3e3ba86a931818a598a43b9a6bc628f", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 2066, "upload_time": "2019-04-05T20:40:24", "url": "https://files.pythonhosted.org/packages/5e/8f/4fce32ebe054f8bea4cdeae5c7fb7d9081d5515aeb40b13834f459fbd683/aiomemoizettl-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4da3da0cc6b28a5e27569758367f0b57", "sha256": "07a6becac60f6cd2604b9f2b73bcd9a50079a0b7b55e2a4e45b1eec5a3ea9659" }, "downloads": -1, "filename": "aiomemoizettl-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4da3da0cc6b28a5e27569758367f0b57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 3164, "upload_time": "2019-04-05T20:42:26", "url": "https://files.pythonhosted.org/packages/36/49/59ad30138158b09ee058c72d053461c15dcc3f43fe26f53fed98aab3c32e/aiomemoizettl-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13dd1cfee6bcaeb52b57ffdc4d646a17", "sha256": "0a80d2dc765e545263f515363b6700ec8cf86fa3968b529f56390b28e34f743d" }, "downloads": -1, "filename": "aiomemoizettl-0.0.3.tar.gz", "has_sig": false, "md5_digest": "13dd1cfee6bcaeb52b57ffdc4d646a17", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 2071, "upload_time": "2019-04-05T20:42:27", "url": "https://files.pythonhosted.org/packages/3f/6d/e57e96f11ee334ec746b4d7a96351b35f6b42e53855c2a7c255d16be62e3/aiomemoizettl-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4da3da0cc6b28a5e27569758367f0b57", "sha256": "07a6becac60f6cd2604b9f2b73bcd9a50079a0b7b55e2a4e45b1eec5a3ea9659" }, "downloads": -1, "filename": "aiomemoizettl-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4da3da0cc6b28a5e27569758367f0b57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 3164, "upload_time": "2019-04-05T20:42:26", "url": "https://files.pythonhosted.org/packages/36/49/59ad30138158b09ee058c72d053461c15dcc3f43fe26f53fed98aab3c32e/aiomemoizettl-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13dd1cfee6bcaeb52b57ffdc4d646a17", "sha256": "0a80d2dc765e545263f515363b6700ec8cf86fa3968b529f56390b28e34f743d" }, "downloads": -1, "filename": "aiomemoizettl-0.0.3.tar.gz", "has_sig": false, "md5_digest": "13dd1cfee6bcaeb52b57ffdc4d646a17", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 2071, "upload_time": "2019-04-05T20:42:27", "url": "https://files.pythonhosted.org/packages/3f/6d/e57e96f11ee334ec746b4d7a96351b35f6b42e53855c2a7c255d16be62e3/aiomemoizettl-0.0.3.tar.gz" } ] }