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

Uploaded Source

Built Distribution

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

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.7.tar.gz
Algorithm Hash digest
SHA256 eb6f110930beb4826a4eabd31c001788b4dff1eced98d80840f05232b3358709
MD5 d13ff77805f48362cf2ee1b4282c8ea3
BLAKE2b-256 7d4cc1bf68e849553d821065fa0e0a89bbf58bcf3c845975aa7907b3f92122a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.7-py2-none-any.whl
Algorithm Hash digest
SHA256 9908c3789bf50c4c1b55c9fb5dc3a83d1609d7f4a11450d436c6880a63656f12
MD5 ef24c3e7d544ca76c1ca02eb8b35e2ce
BLAKE2b-256 bba13b738a5df8057e2171b314ba17e0ec3fced4b746895aa332d39eed5e2b32

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