Skip to main content

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:

https://github.com/alexcouper/bash

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

bash-0.6.tar.gz (2.8 kB view details)

Uploaded Source

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

Hashes for bash-0.6.tar.gz
Algorithm Hash digest
SHA256 2f79cb477d2763e6a24ca89314daef03b4cd899e02acec2635c95ea942736c68
MD5 d0c7584c830401e8451b30727ddaa4fb
BLAKE2b-256 42304870d449947581ff48f213c206d103e9458b0070dbc436c50b1b95007043

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