Process based timeout context decorator
Project description
py-timeout
py-timeout - pure Python process based decorator that provides execution timeout for Python functions and methods. Since it is not based on signals, py-timeout works fine outside the main thread.
Prerequisites
py-timeout requires python 3.6 or newer versions to run.
Installing
Cloning project from git repository
git clone https://github.com/YADRO-KNS/py-timeout.git
Installing from PyPi
pip3 install py-timeout
Examples
import timeout
@timeout.timeout(duration=0.5)
def foo(value: int) -> None:
...
...
@timeout.timeout(duration=0.5)
def bar(self, value: str) -> str:
...
Decorated function or method will be executed as a sub-process with expected life-time of passed duration value.
import timeout
import time
@timeout.timeout(duration=5)
def foo() -> None:
while True:
time.sleep(1)
try:
foo()
except timeout.TimeoutException:
pass
In case if for some reason execution will take longer than expected the process will be terminated and TimeoutException will be raised.
Versioning
We use SemVer for versioning.
Authors
See also the list of contributors who participated in this project.
License
The code is available as open source under the terms of the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for py_timeout-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3c14b81d242e8d5ac8e8cb945c349ef2b26b4586e9f132cb744eec9ad04f521 |
|
MD5 | e976d562e82971662f262d8a89856462 |
|
BLAKE2b-256 | 60263ec50d61f9b84105279cdbc80a20bfb94d566362f60c0dac5921cd396448 |