Skip to main content

Python subprocess replacement

Project description

Logo

Version Downloads Status Python Versions Build Status Coverage Status

sh is a full-fledged subprocess replacement for Python 2.6 - 3.8, PyPy and PyPy3 that allows you to call any program as if it were a function:

from sh import ifconfig
print(ifconfig("eth0"))

sh is not a collection of system commands implemented in Python.

Complete documentation here

Installation

$> pip install sh

Updating the docs

Check out the gh-pages branch and follow the README.rst there.

Developers

Testing

I’ve included a Docker test suite in the docker_test_suit/ folder. To build the image, cd into that directory and run:

$> ./build.sh

This will install ubuntu 18.04 LTS and all python versions from 2.6-3.8. Once it’s done, stay in that directory and run:

$> ./run.sh

This will mount your local code directory into the container and start the test suite, which will take a long time to run. If you wish to run a single test, you may pass that test to ./run.sh:

$> ./run.sh FunctionalTests.test_unicode_arg

To run a single test for a single environment:

$> ./run.sh -e 3.4 FunctionalTests.test_unicode_arg

Coverage

First run all of the tests:

$> python sh.py test

This will aggregate a .coverage. You may then visualize the report with:

$> coverage report

Or generate visual html files with:

$> coverage html

Which will create ./htmlcov/index.html that you may open in a web browser.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sh-1.13.1.tar.gz (62.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sh-1.13.1-py2.py3-none-any.whl (40.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sh-1.13.1.tar.gz.

File metadata

  • Download URL: sh-1.13.1.tar.gz
  • Upload date:
  • Size: 62.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.12.1 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.5.8

File hashes

Hashes for sh-1.13.1.tar.gz
Algorithm Hash digest
SHA256 97a3d2205e3c6a842d87ebbc9ae93acae5a352b1bc4609b428d0fd5bb9e286a3
MD5 7e3dd3a6b49c06db93746994a68cb8cf
BLAKE2b-256 c93b2c9a22bf1c48ced7ff3a11d4a862682c21d825c35f9d025811ad9808d263

See more details on using hashes here.

File details

Details for the file sh-1.13.1-py2.py3-none-any.whl.

File metadata

  • Download URL: sh-1.13.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.12.1 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.5.8

File hashes

Hashes for sh-1.13.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6f792e45b45d039b423081558904981e8ab49572b0c38009fcc65feaab06bcda
MD5 50d08e12e382f07b853911cf90dc104a
BLAKE2b-256 fa9c796934ee6d990d504c600056aa435e31bd49dbfba37e81d2045d37c8bdaf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page