Skip to main content

Versatile utility function to run external processes

Project description

ProcRunner

https://img.shields.io/pypi/v/procrunner.svg https://travis-ci.org/DiamondLightSource/python-procrunner.svg?branch=master https://ci.appveyor.com/api/projects/status/jtq4brwri5q18d0u/branch/master Documentation Status Updates https://img.shields.io/pypi/pyversions/procrunner.svg

Versatile utility function to run external processes

Features

  • runs an external process and waits for it to finish

  • does not deadlock, no matter the process stdout/stderr output behaviour

  • returns the exit code, stdout, stderr (separately, both as bytestrings), and the total process runtime as a dictionary

  • process can run in a custom environment, either as a modification of the current environment or in a new environment from scratch

  • stdin can be fed to the process, the returned dictionary contains information how much was read by the process

  • stdout and stderr is printed by default, can be disabled

  • stdout and stderr can be passed to any arbitrary function for live processing (separately, both as unicode strings)

  • optionally enforces a time limit on the process

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.7.2 (2018-10-05)

  • Officially support Python 3.7

0.7.1 (2018-09-03)

  • Accept environment variable overriding with numeric values.

0.7.0 (2018-05-13)

  • Unicode fixes. Fix crash on invalid UTF-8 input.

  • Clarify that stdout/stderr values are returned as bytestrings.

  • Callbacks receive the data decoded as UTF-8 unicode strings with unknown characters replaced by ufffd (unicode replacement character). Same applies to printing of output.

  • Mark stdin broken on Windows.

0.6.1 (2018-05-02)

  • Maintenance release to add some tests for executable resolution.

0.6.0 (2018-05-02)

  • Fix Win32 API executable resolution for commands containing a dot (‘.’) in addition to a file extension (say ‘.bat’).

0.5.1 (2018-04-27)

  • Fix Win32API dependency installation on Windows.

0.5.0 (2018-04-26)

  • New keyword ‘win32resolve’ which only takes effect on Windows and is enabled by default. This causes procrunner to call the Win32 API FindExecutable() function to try and lookup non-.exe files with the corresponding name. This means .bat/.cmd/etc.. files can now be run without explicitly specifying their extension. Only supported on Python 2.7 and 3.5+.

0.4.0 (2018-04-23)

  • Python 2.7 support on Windows. Python3 not yet supported on Windows.

0.3.0 (2018-04-17)

  • run_process() renamed to run()

  • Python3 compatibility fixes

0.2.0 (2018-03-12)

  • Procrunner is now Python3 3.3-3.6 compatible.

0.1.0 (2018-03-12)

  • First release on PyPI.

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

procrunner-0.7.2.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

procrunner-0.7.2-py2.py3-none-any.whl (9.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file procrunner-0.7.2.tar.gz.

File metadata

  • Download URL: procrunner-0.7.2.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for procrunner-0.7.2.tar.gz
Algorithm Hash digest
SHA256 9b138cd8d81d7eea29236cd3e8c8e5e6a9888a4bae1129619ee89812a4db7c33
MD5 f353536631306f8e2583d20fdf887c38
BLAKE2b-256 579ae8338b36978b824d1deafb6a5b3f5bdbd006b1d9aa3952fa9856febb6b79

See more details on using hashes here.

File details

Details for the file procrunner-0.7.2-py2.py3-none-any.whl.

File metadata

  • Download URL: procrunner-0.7.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for procrunner-0.7.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d70215251414bf00a97c1726962e59964f88794b699f6bba0bee210f5bcb0f07
MD5 413eae70fd8d31d4a2c496d05b0d1ad1
BLAKE2b-256 de432e96c489c47335c1c22863bac4d1b8641b625b2dfd92acedfcd5ec3652b6

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