166 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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.
 | 
						|
 | 
						|
 |