Bash for Python
Project description
A library that enables easy running and concatenation of bash commands in python
Installation
Install using pip:
pip install bash
Usage
Run commands as you would in bash:
>>> from bash import bash >>> bash('ls . | grep ".pyc"') bash.pyc tests.pyc
Chain commands for the same effect:
>>> bash('ls . ').bash('grep ".pyc"') bash.pyc tests.pyc
This becomes increasingly useful if you later need to reuse one such command:
>>> b = bash('ls . ') >>> b.bash('grep ".pyc"') bash.pyc tests.pyc >>> b.bash('grep ".py$') bash.py tests.py
Access stdout and stderr attributes:
>>> b = bash('ls tests.py') >>> b.stdout 'tests.py\n' >>> b.stderr ''
Get the return code generated by a command:
>>> b = bash('ls tests.py') >>> b tests.py >>> b.code 0
To get a stripped, unicode string version of bash.stdout call value():
>>> b = bash('ls tests.py').value() u'tests.py'
Motivation
I found that I was often having to write the same lines of code to handle running bash commands from python.
This provides a pip-installable, tested shortcut to writing:
from subprocess import PIPE, Popen p = Popen(cmd, shell=True, stdout=PIPE, stdin=PIPE, stderr=PIPE) output, err = p.communicate()
Warning
Please note that this library uses shell=True under the hood. This means that this library is NOT suitable for running untrusted commands. (See explanation)
Running the tests
Simply use a test runner.
$ nosetests
Support + Contributing
Feel free to make pull requests, or report issues via the repo:
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
File details
Details for the file bash-0.6.tar.gz
.
File metadata
- Download URL: bash-0.6.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f79cb477d2763e6a24ca89314daef03b4cd899e02acec2635c95ea942736c68 |
|
MD5 | d0c7584c830401e8451b30727ddaa4fb |
|
BLAKE2b-256 | 42304870d449947581ff48f213c206d103e9458b0070dbc436c50b1b95007043 |