{ "info": { "author": "Andrew Svetlov", "author_email": "andrew.svetlov@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP" ], "description": "async-timeout\n=============\n.. image:: https://travis-ci.org/aio-libs/async-timeout.svg?branch=master\n :target: https://travis-ci.org/aio-libs/async-timeout\n.. image:: https://codecov.io/gh/aio-libs/async-timeout/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/aio-libs/async-timeout\n.. image:: https://img.shields.io/pypi/v/async-timeout.svg\n :target: https://pypi.python.org/pypi/async-timeout\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n :target: https://gitter.im/aio-libs/Lobby\n :alt: Chat on Gitter\n\nasyncio-compatible timeout context manager.\n\n\nUsage example\n-------------\n\n\nThe context manager is useful in cases when you want to apply timeout\nlogic around block of code or in cases when ``asyncio.wait_for()`` is\nnot suitable. Also it's much faster than ``asyncio.wait_for()``\nbecause ``timeout`` doesn't create a new task.\n\nThe ``timeout(timeout, *, loop=None)`` call returns a context manager\nthat cancels a block on *timeout* expiring::\n\n async with timeout(1.5):\n await inner()\n\n1. If ``inner()`` is executed faster than in ``1.5`` seconds nothing\n happens.\n2. Otherwise ``inner()`` is cancelled internally by sending\n ``asyncio.CancelledError`` into but ``asyncio.TimeoutError`` is\n raised outside of context manager scope.\n\n*timeout* parameter could be ``None`` for skipping timeout functionality.\n\n\nContext manager has ``.expired`` property for check if timeout happens\nexactly in context manager::\n\n async with timeout(1.5) as cm:\n await inner()\n print(cm.expired)\n\nThe property is ``True`` if ``inner()`` execution is cancelled by\ntimeout context manager.\n\nIf ``inner()`` call explicitly raises ``TimeoutError`` ``cm.expired``\nis ``False``.\n\nInstallation\n------------\n\n::\n\n $ pip install async-timeout\n\nThe library is Python 3 only!\n\n\n\nAuthors and License\n-------------------\n\nThe module is written by Andrew Svetlov.\n\nIt's *Apache 2* licensed and freely available.\n\n\nCHANGES\n=======\n\n3.0.1 (2018-10-09)\n------------------\n\n- More aggressive typing (#48)\n\n3.0.0 (2018-05-05)\n------------------\n\n- Drop Python 3.4, the minimal supported version is Python 3.5.3\n\n- Provide type annotations\n\n2.0.1 (2018-03-13)\n------------------\n\n* Fix ``PendingDeprecationWarning`` on Python 3.7 (#33)\n\n\n2.0.0 (2017-10-09)\n------------------\n\n* Changed `timeout <= 0` behaviour\n\n * Backward incompatibility change, prior this version `0` was\n shortcut for `None`\n * when timeout <= 0 `TimeoutError` raised faster\n\n1.4.0 (2017-09-09)\n------------------\n\n* Implement `remaining` property (#20)\n\n * If timeout is not started yet or started unconstrained:\n `remaining` is `None`\n * If timeout is expired: `remaining` is `0.0`\n * All others: roughly amount of time before `TimeoutError` is triggered\n\n1.3.0 (2017-08-23)\n------------------\n\n* Don't suppress nested exception on timeout. Exception context points\n on cancelled line with suspended `await` (#13)\n\n* Introduce `.timeout` property (#16)\n\n* Add methods for using as async context manager (#9)\n\n1.2.1 (2017-05-02)\n------------------\n\n* Support unpublished event loop's \"current_task\" api.\n\n\n1.2.0 (2017-03-11)\n------------------\n\n* Extra check on context manager exit\n\n* 0 is no-op timeout\n\n\n1.1.0 (2016-10-20)\n------------------\n\n* Rename to `async-timeout`\n\n1.0.0 (2016-09-09)\n------------------\n\n* The first release.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aio-libs/async_timeout/", "keywords": "", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "async_timeout", "package_url": "https://pypi.org/project/async_timeout/", "platform": "", "project_url": "https://pypi.org/project/async_timeout/", "project_urls": { "Homepage": "https://github.com/aio-libs/async_timeout/" }, "release_url": "https://pypi.org/project/async_timeout/3.0.1/", "requires_dist": null, "requires_python": ">=3.5.3", "summary": "Timeout context manager for asyncio programs", "version": "3.0.1" }, "last_serial": 4354768, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "2dec8641f93ae9b6410927673c88068c", "sha256": "6d3fd64572c13b75f9f1cbb7e7de089cc7ae119a26913573813a9124651df923" }, "downloads": -1, "filename": "async_timeout-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2dec8641f93ae9b6410927673c88068c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4032, "upload_time": "2016-09-09T06:01:28", "url": "https://files.pythonhosted.org/packages/b4/e6/5dc387267854666df7d2e5e5a305c8b2e037056bdf8bb278aed488670598/async_timeout-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8baef770792f04fa3d74e7d083c43e9", "sha256": "c7afd7355b93fca0aecc15811aa53eea57f6fd7307b5bff2336b01419ebeda36" }, "downloads": -1, "filename": "async_timeout-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f8baef770792f04fa3d74e7d083c43e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7554, "upload_time": "2016-09-09T06:01:31", "url": "https://files.pythonhosted.org/packages/c3/5b/d00e06296f5fe2c1db230f5f3f39538a4ae23c153adb1672e87e94137f89/async_timeout-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6fb3595eeb6264eb9aecdf3bc9fd69d7", "sha256": "d848623229614d2a239375f003c65a0ecf3bcfed3a2fdba6ce83b31a8038c2a0" }, "downloads": -1, "filename": "async_timeout-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6fb3595eeb6264eb9aecdf3bc9fd69d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4074, "upload_time": "2016-10-20T11:30:53", "url": "https://files.pythonhosted.org/packages/58/18/0747349c48d690f7d78fc1824e27a071534828023d005a4dd3308d9448f0/async_timeout-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c3565e165266dd7710a76f50ae44319", "sha256": "b88bd1fe001b800ec23c7bf27a81b32819e2a56668e9fba5646a7f3618143081" }, "downloads": -1, "filename": "async-timeout-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8c3565e165266dd7710a76f50ae44319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7590, "upload_time": "2016-10-20T11:30:56", "url": "https://files.pythonhosted.org/packages/29/f6/eeac39dfadd3a7610bb33842cf611a1f09fcd2e445ab76e4c951efde0c2b/async-timeout-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "7a6982b042a7551dfeba74d475460e77", "sha256": "2507257417470f41e40ae9265d0abdbff6d936b6e0d5831132d35714c9cd433d" }, "downloads": -1, "filename": "async_timeout-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7a6982b042a7551dfeba74d475460e77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4182, "upload_time": "2017-03-13T04:47:08", "url": "https://files.pythonhosted.org/packages/dd/6a/d63e04d23f64b1ccb633dce6e42e5bf3d58095f601b91337b4fdfa6b90a9/async_timeout-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9fc198be2e415e6786da596091abe40", "sha256": "0652d108c0156ae5ac94d99f53a6bdd039b0c076346ff8f58c9a1551fac17a19" }, "downloads": -1, "filename": "async-timeout-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b9fc198be2e415e6786da596091abe40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7700, "upload_time": "2017-03-13T04:47:09", "url": "https://files.pythonhosted.org/packages/55/67/3870ef0811ee3e40b67d776b3144743f34a2a2d094690af83a1c5390806e/async-timeout-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "7f08e713d9ecc347a8f0931d213a7c75", "sha256": "fe2f598eb140a444cc4ba15010f109259ad8eebcb11a9107fdb9ea32139bc722" }, "downloads": -1, "filename": "async_timeout-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7f08e713d9ecc347a8f0931d213a7c75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4360, "upload_time": "2017-05-02T16:43:40", "url": "https://files.pythonhosted.org/packages/46/08/44b31f56d9c86ffc8c0abb320fe8465a1a5ae59dc2baddee383b4b3dd813/async_timeout-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e71f9b197498f917864e29af7a5defa0", "sha256": "380e9bfd4c009a14931ffe487499b0906b00b3378bb743542cfd9fbb6d8e4657" }, "downloads": -1, "filename": "async-timeout-1.2.1.tar.gz", "has_sig": false, "md5_digest": "e71f9b197498f917864e29af7a5defa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7797, "upload_time": "2017-05-02T16:43:41", "url": "https://files.pythonhosted.org/packages/eb/a3/9fbe8bf7de4128d8f5562ca0b7b2f81d21b006085149528b937e1624e71f/async-timeout-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "134ef71541562af54fff18663b9b8d80", "sha256": "087a26de8b926d41087c56bb7f70d9b5480c119e4b56589d431206d24508a131" }, "downloads": -1, "filename": "async_timeout-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "134ef71541562af54fff18663b9b8d80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4846, "upload_time": "2017-08-23T08:41:28", "url": "https://files.pythonhosted.org/packages/90/bb/2dc6e9a9c2e9958c4f2028b4d391734a63209da03d15cca72dd70063c4f5/async_timeout-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3c010b25cfad96538578bb3c153ce5e", "sha256": "f4651f122a9877049930ce31a8422bc202a47937627295fe5e411b2c2083481f" }, "downloads": -1, "filename": "async-timeout-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a3c010b25cfad96538578bb3c153ce5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8816, "upload_time": "2017-08-23T08:41:29", "url": "https://files.pythonhosted.org/packages/57/e9/52dfa4243a5b796f5a9c74452b43156ae5fbd45b125cc2dd3e1635797f2c/async-timeout-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "22aef81e2e67407711477df6b6fb8c3e", "sha256": "5b5c855783f65dfda72fc15ca538070188776ece811408867e64dd3cce53371d" }, "downloads": -1, "filename": "async_timeout-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "22aef81e2e67407711477df6b6fb8c3e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5441, "upload_time": "2017-09-09T16:52:36", "url": "https://files.pythonhosted.org/packages/d3/29/294a79872545bdd4765a6e1afd04bbc4c5ee4efb5baa2094794abe5dc46b/async_timeout-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05f59e88d72ba3da099f8785bf49e97c", "sha256": "983891535b1eca6ba82b9df671c8abff53c804fce3fa630058da5bbbda500340" }, "downloads": -1, "filename": "async-timeout-1.4.0.tar.gz", "has_sig": false, "md5_digest": "05f59e88d72ba3da099f8785bf49e97c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9396, "upload_time": "2017-09-09T16:52:37", "url": "https://files.pythonhosted.org/packages/6f/cc/ff80612164fe68bf97767052c5c783a033165df7d47a41ae5c1cc5ea480b/async-timeout-1.4.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "b67b978c2043df5de8b4f0fbebf6e381", "sha256": "d3a195a827b0f4068d1616ae2da04aac62e365d14f2b13dbc071f9feed9db4e2" }, "downloads": -1, "filename": "async_timeout-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b67b978c2043df5de8b4f0fbebf6e381", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5662, "upload_time": "2017-10-09T10:44:00", "url": "https://files.pythonhosted.org/packages/16/6c/9a34c589658d63bb331db5a4a745f0f9814860a3ddadd10376965eb97ac0/async_timeout-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36e75397e54c6b899ffabdfe295a9f7c", "sha256": "c17d8ac2d735d59aa62737d76f2787a6c938f5a944ecf768a8c0ab70b0dea566" }, "downloads": -1, "filename": "async-timeout-2.0.0.tar.gz", "has_sig": false, "md5_digest": "36e75397e54c6b899ffabdfe295a9f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10288, "upload_time": "2017-10-09T10:44:01", "url": "https://files.pythonhosted.org/packages/78/10/7fd2551dc51f6065bdbba07d395865df4582cc18169297e7a5c8d90f5bd2/async-timeout-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "be2a1fba15a7a1dd4c577ddf79ba8020", "sha256": "9093db5b8ddbe4b8f6885d1a6e0ad84ae3155464cbf6877c387605244c285f3c" }, "downloads": -1, "filename": "async_timeout-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "be2a1fba15a7a1dd4c577ddf79ba8020", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5880, "upload_time": "2018-03-13T09:45:13", "url": "https://files.pythonhosted.org/packages/1d/b9/213521db2918b5b7f7df333a33ea3d38ba70ba705d9db6c29f0343c213ea/async_timeout-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9dfa03c6efc1dc02411ec791179add59", "sha256": "00cff4d2dce744607335cba84e9929c3165632da2d27970dbc55802a0c7873d0" }, "downloads": -1, "filename": "async-timeout-2.0.1.tar.gz", "has_sig": false, "md5_digest": "9dfa03c6efc1dc02411ec791179add59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10463, "upload_time": "2018-03-13T09:45:16", "url": "https://files.pythonhosted.org/packages/23/6d/e37be168272b7a499111d0ed14940da80644d21b201e27980892c7125abb/async-timeout-2.0.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "5b32ed2c2671b6b7adf6943ade33f2bc", "sha256": "474d4bc64cee20603e225eb1ece15e248962958b45a3648a9f5cc29e827a610c" }, "downloads": -1, "filename": "async_timeout-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b32ed2c2671b6b7adf6943ade33f2bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 8223, "upload_time": "2018-05-05T10:35:13", "url": "https://files.pythonhosted.org/packages/96/0f/e6357458c87fb4ed8f3df215773f3caad40968f10e05552cbd8bd28415e4/async_timeout-3.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a7872948573f9ef17f9ecb484024c21", "sha256": "b3c0ddc416736619bd4a95ca31de8da6920c3b9a140c64dbef2b2fa7bf521287" }, "downloads": -1, "filename": "async-timeout-3.0.0.tar.gz", "has_sig": false, "md5_digest": "0a7872948573f9ef17f9ecb484024c21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 10803, "upload_time": "2018-05-05T10:35:14", "url": "https://files.pythonhosted.org/packages/35/82/6c7975afd97661e6115eee5105359ee191a71ff3267fde081c7c8d05fae6/async-timeout-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "17e95b1778c2c32036bcc5664e815ab8", "sha256": "4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" }, "downloads": -1, "filename": "async_timeout-3.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "17e95b1778c2c32036bcc5664e815ab8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 8247, "upload_time": "2018-10-09T07:13:30", "url": "https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "305c4fa529f2485c403d0dbe14390175", "sha256": "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f" }, "downloads": -1, "filename": "async-timeout-3.0.1.tar.gz", "has_sig": false, "md5_digest": "305c4fa529f2485c403d0dbe14390175", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 9724, "upload_time": "2018-10-09T07:13:31", "url": "https://files.pythonhosted.org/packages/a1/78/aae1545aba6e87e23ecab8d212b58bb70e72164b67eb090b81bb17ad38e3/async-timeout-3.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "17e95b1778c2c32036bcc5664e815ab8", "sha256": "4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" }, "downloads": -1, "filename": "async_timeout-3.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "17e95b1778c2c32036bcc5664e815ab8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 8247, "upload_time": "2018-10-09T07:13:30", "url": "https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "305c4fa529f2485c403d0dbe14390175", "sha256": "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f" }, "downloads": -1, "filename": "async-timeout-3.0.1.tar.gz", "has_sig": false, "md5_digest": "305c4fa529f2485c403d0dbe14390175", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 9724, "upload_time": "2018-10-09T07:13:31", "url": "https://files.pythonhosted.org/packages/a1/78/aae1545aba6e87e23ecab8d212b58bb70e72164b67eb090b81bb17ad38e3/async-timeout-3.0.1.tar.gz" } ] }