Skip to main content

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)

Uploaded Source

Built Distribution

bgprocess-1.1.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

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

Hashes for bgprocess-1.1.1.tar.gz
Algorithm Hash digest
SHA256 0f2d3440ca89cbd2719ce1b6bccda3c6294cf3c1775af594a67f1c38a0eadc1f
MD5 9532e5383501f22b5ef594748eb4753a
BLAKE2b-256 138380fe8ba656757e9622a5e05571053f3ff5cadf3d64fc24f709ac8a210f5d

See more details on using hashes here.

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

Hashes for bgprocess-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 daea139e68cfdfdbf45a5f216a816c2d1cdbeeb2b9af77c905c852e685fd5db4
MD5 50f80f1b687549a3f065775654a77c75
BLAKE2b-256 2769fba76f00b85d176597c59f4c00b35a614de5714e0e428d416dd387290d3f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page