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

Uploaded Source

Built Distribution

delegator.py-0.0.5-py2-none-any.whl (5.5 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.5.tar.gz
Algorithm Hash digest
SHA256 91cdaec7c4b92f33acc56a575f2ba1a6ca39911f3c193450ae072351778bace3
MD5 22bc0924277834582d36310ef5dd1208
BLAKE2b-256 f7476b8d664e5e6d4fc4ae6ea3881b96192db774d60710d27aa8ce58e1020a25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.5-py2-none-any.whl
Algorithm Hash digest
SHA256 36dd8e337bd7d6eb8717e55aa24c4e6e3b132258c020caa35f6c29942093f8d7
MD5 698dc8b696e9bf9f792aa807372d8c90
BLAKE2b-256 85a8c576c95fbaacda1bae1ea342eb43eb6ec7b9298e9f31b4b6830307593785

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