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.python.org/pypi/delegator.py
.. image:: https://img.shields.io/pypi/l/delegator.py.svg
:target: https://pypi.python.org/pypi/delegator.py
.. image:: https://img.shields.io/pypi/wheel/delegator.py.svg
:target: https://pypi.python.org/pypi/delegator.py
.. image:: https://img.shields.io/pypi/pyversions/delegator.py.svg
:target: https://pypi.python.org/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
Release history Release notifications | RSS feed
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)
Built Distribution
File details
Details for the file delegator.py-0.0.8.tar.gz
.
File metadata
- Download URL: delegator.py-0.0.8.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 603c1c1c76b1340520d95a1e768cf2d3a8df7b3c15a1eb9df83aac29b8d025a4 |
|
MD5 | 32207a6dc5dee99d2fdb5345dfb3b366 |
|
BLAKE2b-256 | 755deccdb1877da79cc4fad7222b382172707945c68cfa12056b57d422c88c80 |
File details
Details for the file delegator.py-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: delegator.py-0.0.8-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbfbda2e36edb64250629a98911f8b0c8f5f66af5936608d1fb44d9b866c51d6 |
|
MD5 | ecb13b7241cdfd1bd7723f948e8ff3fa |
|
BLAKE2b-256 | 6fe4a6c02946b405d011d42d21883eee2042a95b476d1681d12d22e3ab74e103 |