Skip to main content

Subprocesses for Humans 2.0.

Project description


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


.. image:: https://img.shields.io/pypi/v/delegator.py.svg
:target: https://pypi-hypernode.com/pypi/delegator.py

.. image:: https://img.shields.io/pypi/l/delegator.py.svg
:target: https://pypi-hypernode.com/pypi/delegator.py

.. image:: https://img.shields.io/pypi/wheel/delegator.py.svg
:target: https://pypi-hypernode.com/pypi/delegator.py

.. image:: https://img.shields.io/pypi/pyversions/delegator.py.svg
:target: https://pypi-hypernode.com/pypi/delegator.py

.. image:: https://img.shields.io/badge/SayThanks.io-☼-1EAEDB.svg
:target: https://saythanks.io/to/kennethreitz


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

Uploaded Source

Built Distribution

delegator.py-0.0.8-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for delegator.py-0.0.8.tar.gz
Algorithm Hash digest
SHA256 603c1c1c76b1340520d95a1e768cf2d3a8df7b3c15a1eb9df83aac29b8d025a4
MD5 32207a6dc5dee99d2fdb5345dfb3b366
BLAKE2b-256 755deccdb1877da79cc4fad7222b382172707945c68cfa12056b57d422c88c80

See more details on using hashes here.

File details

Details for the file delegator.py-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for delegator.py-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 fbfbda2e36edb64250629a98911f8b0c8f5f66af5936608d1fb44d9b866c51d6
MD5 ecb13b7241cdfd1bd7723f948e8ff3fa
BLAKE2b-256 6fe4a6c02946b405d011d42d21883eee2042a95b476d1681d12d22e3ab74e103

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