Skip to main content

Versatile utility function to run external processes

Project description

ProcRunner

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

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.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


Release history Release notifications

This version
History Node

0.7.0

History Node

0.6.1

History Node

0.6.0

History Node

0.5.1

History Node

0.5.0

History Node

0.4.0

History Node

0.3.0

History Node

0.2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
procrunner-0.7.0-py2.py3-none-any.whl (7.9 kB) Copy SHA256 hash SHA256 Wheel py2.py3 May 13, 2018
procrunner-0.7.0.tar.gz (17.4 kB) Copy SHA256 hash SHA256 Source None May 13, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page