# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-async-timeout VERSION= 4.0.3 KEYWORDS= python VARIANTS= v11 v12 SDESC[v11]= Asyncio-compatible timeout context manager (3.11) SDESC[v12]= Asyncio-compatible timeout context manager (3.12) HOMEPAGE= https://github.com/aio-libs/async-timeout CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPIWHL/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c DISTFILE[1]= async_timeout-4.0.3-py3-none-any.whl:main DF_INDEX= 1 SPKGS[v11]= single SPKGS[v12]= single OPTIONS_AVAILABLE= PY311 PY312 OPTIONS_STANDARD= none VOPTS[v11]= PY311=ON PY312=OFF VOPTS[v12]= PY311=OFF PY312=ON DISTNAME= async_timeout-4.0.3.dist-info GENERATED= yes [PY311].USES_ON= python:v11,wheel [PY312].USES_ON= python:v12,wheel [FILE:2227:descriptions/desc.single] async-timeout ============= :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(delay, *, loop=None)`` call returns a context manager that cancels a block on *timeout* expiring:: from async_timeout import timeout 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. Alternatively, ``timeout_at(when)`` can be used for scheduling at the absolute time:: loop = asyncio.get_event_loop() now = loop.time() async with timeout_at(now + 1.5): await inner() Please note: it is not POSIX time but a time with undefined starting base, e.g. the time of the system power on. 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``. The scheduled deadline time is available as ``.deadline`` property:: async with timeout(1.5) as cm: cm.deadline Not finished yet timeout can be rescheduled by ``shift_by() or shift_to()`` methods:: async with timeout(1.5) as cm: cm.shift(1) # add another second on waiting cm.update(loop.time() + 5) # reschedule to now+5 seconds Rescheduling is forbidden if the timeout is expired or after exit from async with code block. 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. [FILE:115:distinfo] 7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028 5721 async_timeout-4.0.3-py3-none-any.whl