Skip to main content

Subprocesses for Humans 2.0.

Project description


Delegator.py — Subprocesses for Humans 2.0
=======================================

**Delegator.py** is a simple library for dealing with subprocesses, inspired
by both `envoy <https://github.com/kennethreitz/envoy>`_ and `pexpect <http://pexpect.readthedocs.io>`_ (in fact, it depends on it!).

This module features two main functions ``delegator.run()`` and ``delegator.chain()``. One runs commands, blocking or non-blocking, and the other runs a chain of commands, seperated by the standard unix pipe operator: ``|``.

Basic Usage
-----------

Basic run functionality:

.. code:: pycon

>>> c = delegator.run('ls')
>>> print c.out
README.rst delegator.py

>>> c = delegator.run('long-running-process', block=False)
>>> c.pid
35199
>>> c.block()
>>> c.return_code
0

Commands can be passed in as lists as well (e.g. ``['ls', '-lrt']``), for parameterization.

Basic chain functionality:

.. code:: pycon

# Can also be called with ([['fortune'], ['cowsay']]).
# or, delegator.run('fortune').pipe('cowsay')

>>> c = delegator.chain('fortune | cowsay')
>>> print c.out
_______________________________________
/ Our swords shall play the orators for \
| us. |
| |
\ -- Christopher Marlowe /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||


Expect functionality is built-in too, on non-blocking commands:

.. code:: pycon

>>> c.expect('Password:')
>>> c.send('PASSWORD')
>>> c.block()

Other functions:

.. code:: pycon

>>> c.kill()
>>> c.send('SIGTERM', signal=True)

# Only available when block=True, otherwise, use c.out.
>>> c.err
''

# Direct access to pipes.
>>> c.std_err
<open file '<fdopen>', mode 'rU' at 0x10a5351e0>

Daemonize anything!

.. code:: pycon

# Turns the subprocess into a daemon.
>>> c.daemonize()


Installation
------------

::

$ pip install delegator.py

✨🍰✨

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

delegator.py-0.0.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

delegator.py-0.0.2-py2-none-any.whl (5.4 kB view details)

Uploaded Python 2

File details

Details for the file delegator.py-0.0.2.tar.gz.

File metadata

File hashes

Hashes for delegator.py-0.0.2.tar.gz
Algorithm Hash digest
SHA256 8df205c097e7e565a04e551258015867880f40d753bc0f186974fa8922f27475
MD5 8b0b55513cab2baa0a95d88e546ba78c
BLAKE2b-256 54bdfa6188206ae622ba1ce6dec83dae063aa1b13de76e59b7a4075ee08b43cd

See more details on using hashes here.

File details

Details for the file delegator.py-0.0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for delegator.py-0.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 83d63a546002225fdf15a03a951b34b9b46003465502422bbf19f2c976c63a76
MD5 ae358a9d9751f6232528a2dd225db22c
BLAKE2b-256 c11ccde0db1d07b25b8961cd9d2a61a013d31e9f2e779ac0458d76a0871ab410

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