Timeout library for generic interruption of main thread by an exception after a configurable duration
Timeout library for generic interruption of main thread by an exception after a configurable duration.
Set a timeout (seconds) upon expiration of which an exception is raised:
from timeout import timeout
…as a context manager:
with timeout(0.5): ... work ...
…or decorating a function:
@timeout(0.5) def work(): ...
The exception may be configured, either by passing an exception instance, or by specifying an overriding exception class and/or value(s):
with timeout(0.5, RuntimeError("Work took too long")): ... work ... with timeout(0.5, RuntimeError, "Work took too long"): ... work ... with timeout(0.5, exc=RuntimeError): ... work ... with timeout(0.5, value="Work took too long"): ... work ... with timeout(0.5, value=(2, "Took too long", 'work.py')): ... work ...
The timeout exception defaults to TimeoutError("Operation timed out").
Note: timeout is implemented via signal, and as such may not be applied outside of a process’s main thread.
signalled-timeout is a Python distribution, which may be installed via easy_install or pip, e.g.:
pip install signalled-timeout
…or, from source:
python setup.py install
To test the distribution on your system, execute its test command:
python setup.py test
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size signalled-timeout-1.0.0.tar.gz (2.7 kB)||File type Source||Python version None||Upload date||Hashes View|