Skip to content
asyncio-compatible timeout class
Branch: master
Clone or download
dependabot and asvetlov Bump mypy from 0.660 to 0.701 (#90)
Bumps [mypy](https://github.com/python/mypy) from 0.660 to 0.701.
- [Release notes](https://github.com/python/mypy/releases)
- [Commits](python/mypy@v0.660...v0.701)

Signed-off-by: dependabot[bot] <support@dependabot.com>
Latest commit 1a13cc6 Apr 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
async_timeout Bump to 3.0.1 Oct 9, 2018
tests Drop asyncio.async Sep 28, 2018
.gitignore
.pyup.yml
.travis.yml Fix #42: Use aio-libs-bot account for deploying on PyPI Oct 9, 2018
CHANGES.rst Bump to 3.0.1 Oct 9, 2018
LICENSE Initial commit Sep 8, 2016
MANIFEST.in Add missing files Sep 8, 2016
Makefile more aggressive typing (#48) Sep 28, 2018
README.rst Fixed typo in README.md (#63) Sep 21, 2018
requirements.txt
setup.cfg more aggressive typing (#48) Sep 28, 2018
setup.py Typing (#37) May 5, 2018

README.rst

async-timeout

https://travis-ci.org/aio-libs/async-timeout.svg?branch=master 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.

You can’t perform that action at this time.