1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
Metadata-Version: 2.1
Name: async-timeout
Version: 3.0.1
Summary: Timeout context manager for asyncio programs
Home-page: https://github.com/aio-libs/async_timeout/
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache 2
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: AsyncIO
Requires-Python: >=3.5.3
async-timeout
=============
.. image:: https://travis-ci.org/aio-libs/async-timeout.svg?branch=master
:target: https://travis-ci.org/aio-libs/async-timeout
.. image:: https://codecov.io/gh/aio-libs/async-timeout/branch/master/graph/badge.svg
:target: https://codecov.io/gh/aio-libs/async-timeout
.. image:: https://img.shields.io/pypi/v/async-timeout.svg
:target: https://pypi.python.org/pypi/async-timeout
.. image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/aio-libs/Lobby
:alt: Chat on Gitter
asyncio-compatible timeout context manager.
Usage example
-------------
The context manager is useful in cases when you want to apply timeout
logic around block of code or in cases when ``asyncio.wait_for()`` is
not suitable. Also it's much faster than ``asyncio.wait_for()``
because ``timeout`` doesn't create a new task.
The ``timeout(timeout, *, loop=None)`` call returns a context manager
that cancels a block on *timeout* expiring::
async with timeout(1.5):
await inner()
1. If ``inner()`` is executed faster than in ``1.5`` seconds nothing
happens.
2. Otherwise ``inner()`` is cancelled internally by sending
``asyncio.CancelledError`` into but ``asyncio.TimeoutError`` is
raised outside of context manager scope.
*timeout* parameter could be ``None`` for skipping timeout functionality.
Context manager has ``.expired`` property for check if timeout happens
exactly in context manager::
async with timeout(1.5) as cm:
await inner()
print(cm.expired)
The property is ``True`` if ``inner()`` execution is cancelled by
timeout context manager.
If ``inner()`` call explicitly raises ``TimeoutError`` ``cm.expired``
is ``False``.
Installation
------------
::
$ pip install async-timeout
The library is Python 3 only!
Authors and License
-------------------
The module is written by Andrew Svetlov.
It's *Apache 2* licensed and freely available.
CHANGES
=======
3.0.1 (2018-10-09)
------------------
- More aggressive typing (#48)
3.0.0 (2018-05-05)
------------------
- Drop Python 3.4, the minimal supported version is Python 3.5.3
- Provide type annotations
2.0.1 (2018-03-13)
------------------
* Fix ``PendingDeprecationWarning`` on Python 3.7 (#33)
2.0.0 (2017-10-09)
------------------
* Changed `timeout <= 0` behaviour
* Backward incompatibility change, prior this version `0` was
shortcut for `None`
* when timeout <= 0 `TimeoutError` raised faster
1.4.0 (2017-09-09)
------------------
* Implement `remaining` property (#20)
* If timeout is not started yet or started unconstrained:
`remaining` is `None`
* If timeout is expired: `remaining` is `0.0`
* All others: roughly amount of time before `TimeoutError` is triggered
1.3.0 (2017-08-23)
------------------
* Don't suppress nested exception on timeout. Exception context points
on cancelled line with suspended `await` (#13)
* Introduce `.timeout` property (#16)
* Add methods for using as async context manager (#9)
1.2.1 (2017-05-02)
------------------
* Support unpublished event loop's "current_task" api.
1.2.0 (2017-03-11)
------------------
* Extra check on context manager exit
* 0 is no-op timeout
1.1.0 (2016-10-20)
------------------
* Rename to `async-timeout`
1.0.0 (2016-09-09)
------------------
* The first release.
|