Skip to main content

Timeout functionality for asynchronous iterators

Project description

aiter-timeouts

GitHub Workflow Status PyPI - Downloads

Timeout functionality for asynchronous iterators. Supports timeouts on the total time to exhaust an asynchronous iterator, or the time it takes for any given step.

Supports Python 3.7+.

Example

Just wrap your async iterator in a call to with_timeout, like so:

from aiter_timeouts import with_timeout

async def async_iter():
    for i in range(10):
        await asyncio.sleep(0.5)
        yield i

try:
    async for val in with_timeout(async_iter(), timeout=6, timeout_per_step=1):
        ...
except IterationTimeoutError as e:
    print(f"step {e.step} took too long")
except IteratorTimeoutError as e:
    print(f"only reached step {e.step} before timing out")

License

MIT License Copyright (c) 2023 Elias Gabriel

Project details


Download files

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

Source Distribution

aiter_timeouts-1.1.0.tar.gz (3.0 kB view hashes)

Uploaded Source

Built Distribution

aiter_timeouts-1.1.0-py3-none-any.whl (3.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page