Skip to main content

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:

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 is 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

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.

Metadata

Release files for async-timeout 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for async-timeout 1.3.0
File Size Uploaded
async-timeout-1.3.0.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for async-timeout 1.3.0
File Interpreter ABI Platform
async_timeout-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.7 kB

Release files / async-timeout-1.3.0.tar.gz

Download URL async-timeout-1.3.0.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f4651f122a9877049930ce31a8422bc202a47937627295fe5e411b2c2083481f
BLAKE2b-256 checksum
How to use checksums
57e952dfa4243a5b796f5a9c74452b43156ae5fbd45b125cc2dd3e1635797f2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / async_timeout-1.3.0-py3-none-any.whl

Download URL async_timeout-1.3.0-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
087a26de8b926d41087c56bb7f70d9b5480c119e4b56589d431206d24508a131
BLAKE2b-256 checksum
How to use checksums
90bb2dc6e9a9c2e9958c4f2028b4d391734a63209da03d15cca72dd70063c4f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page