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>



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.6.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

delegator.py-0.0.6-py2-none-any.whl (5.3 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.6.tar.gz
Algorithm Hash digest
SHA256 0c98f9796e6ea3b78831419cdb207e8151ca5f69c821b5149dbab6f4348bf036
MD5 fc4e86e2eb0961041bf18a543a691f92
BLAKE2b-256 00bcdb245207bf5e364c545e8ab6488fb936297565806083a5e7a3fa53ccc1e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.6-py2-none-any.whl
Algorithm Hash digest
SHA256 91e59ca88f7f3001ae611ed9b9a4fac58207981d2788a3ff0e31784cc200b817
MD5 534e9de7b3c42972538cb3395edb0c9d
BLAKE2b-256 587d9a080ca717ac242ccd956d229facabb84e66b6f41b118fb9360a5f97d759

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