Skip to main content

Timeout context manager for asyncio programs

Project description

async_timeout

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:

with timeout(1.5):
    yield from 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.

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

1.1.0 (2016-10-20)

  • Rename to async-timeout

1.0.0 (2016-09-09)

  • The first release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for async-timeout, version 1.1.0
Filename, size File type Python version Upload date Hashes
Filename, size async_timeout-1.1.0-py3-none-any.whl (4.1 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size async-timeout-1.1.0.tar.gz (7.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page