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

Uploaded Source

Built Distribution

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

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.3.tar.gz
Algorithm Hash digest
SHA256 2219444fb44c983b95e516225639c965573eb69876b440ae069b7ef29388f6db
MD5 20e3331bb153acdd994e3aad63dd5ced
BLAKE2b-256 8315920ff112ec1f40e060361fdc23f35362d886a88c67682746682ea651277b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.3-py2-none-any.whl
Algorithm Hash digest
SHA256 203471898190af118ca4da0ef9bc3a681c31a2aa9ca503ffcdbb2d37e51319bd
MD5 01f138199d52c900e887fbf85eda3b40
BLAKE2b-256 ff8b23a858f32fb9f3ac976c43c9bfd96e823d8432f6e867055c13b5cc73d74b

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