Sets the time limit for slow-running functions.
Project description
timelimit
Sets the time limit for slow-running functions. Runs functions in parallel threads or processes.
Tested with Python 3.6-3.9 on macOS, Ubuntu and Windows.
Install
pip3 install timelimit
Use
from timelimit import limit_thread, limit_process, TimeLimitExceeded
def sluggish(a, b):
...
return a + b
# will run sluggish(1, 2) in parallel thread no more than 5 seconds
a_plus_b = limit_thread(sluggish, (1, 2), timeout=5)
# will run sluggish(1, 2) in parallel process no more than 5 seconds
a_plus_b = limit_process(sluggish, (1, 2), timeout=5)
If the time is up
If the function did not complete its work within the specified time, a
TimeLimitExceeded
exception is thrown.
try:
limit_thread(sluggish, (1, 2), timeout=5)
except TimeLimitExceeded:
print("Oops!")
If you set the default
argument (at least to None
), the default value
is returned instead of an exception.
result = limit_thread(sluggish, (1, 2), timeout=5, default=-1)
if result == -1:
print("Oops!")
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
timelimit-0.0.2.tar.gz
(3.4 kB
view hashes)
Built Distribution
Close
Hashes for timelimit-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d4057816da3d545e31ab1992bfa90c5dc653b6bf6b115db27803a1e99cbabfd |
|
MD5 | 05bb4c481340914b20b66fcba1a029b8 |
|
BLAKE2b-256 | 4ff2d08f37aeeee2c7474d8595194aa7357f28c9feb086ce36c34bff430b740a |