Reads the output of a process line-by-line with a time limit
Project description
bgprocess
Reads the output of a process line-by-line with a time limit.
Tested on Linux and macOS with Python 3.7-3.9.
Install
$ pip3 install bgprocess
Use
from bgprocess import BackgroundProcess, LineWaitingTimeout
with BackgroundProcess(["some_program", "arg1", "arg2"]) as process:
# The process is already up and running in background.
# We can continue to perform operations in our program
do_something()
do_something_more()
# ok, let's check how the process is doing
try:
# getting for the first line from the process output.
# If no line was output, this call will wait for the line
# and only then will return the result
str1 = process.next_line()
# waiting for the second line from the process output
str2 = process.next_line()
# waiting for the next line, but not too long.
# If the line does not appear in 0.25 seconds,
# LineWaitingTimeout exception will be raised
str3 = process.next_line(read_timeout = 0.25) # 0.25 seconds
# skipping lines until we get the line matching the condition
str4 = bp.next_line(match = lambda line: line.startswith('a'))
# skipping lines until we get the line matching the condition.
# If the mathing line does not appear in 3 seconds,
# LineWaitingTimeout exception will be raised
str5 = process.next_line(
match = lambda line: line.startswith('a'),
match_timeout = 3)
except LineWaitingTimeout:
# we may get this exception when running next_line with
# read_timeout or match_timeout
print("Timeout!")
If the process is finished, next_line
returns None
instead of a str
.
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
bgprocess-1.1.1.tar.gz
(6.8 kB
view details)
Built Distribution
File details
Details for the file bgprocess-1.1.1.tar.gz
.
File metadata
- Download URL: bgprocess-1.1.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f2d3440ca89cbd2719ce1b6bccda3c6294cf3c1775af594a67f1c38a0eadc1f |
|
MD5 | 9532e5383501f22b5ef594748eb4753a |
|
BLAKE2b-256 | 138380fe8ba656757e9622a5e05571053f3ff5cadf3d64fc24f709ac8a210f5d |
File details
Details for the file bgprocess-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: bgprocess-1.1.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | daea139e68cfdfdbf45a5f216a816c2d1cdbeeb2b9af77c905c852e685fd5db4 |
|
MD5 | 50f80f1b687549a3f065775654a77c75 |
|
BLAKE2b-256 | 2769fba76f00b85d176597c59f4c00b35a614de5714e0e428d416dd387290d3f |