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

Support

Developers

Updating the docs

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

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.14.1.tar.gz (63.3 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: sh-1.14.1.tar.gz
  • Upload date:
  • Size: 63.3 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.14.1.tar.gz
Algorithm Hash digest
SHA256 39aa9af22f6558a0c5d132881cf43e34828ca03e4ae11114852ca6a55c7c1d8e
MD5 50fc0a2953930ed8d0f6570835e88abf
BLAKE2b-256 f6d4e80280b1eba9597d16144f71d12cdf62d0e66170d289880f307cf905d327

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sh-1.14.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.14.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 75e86a836f47de095d4531718fe8489e6f7446c75ddfa5596f632727b919ffae
MD5 f9d6a463bc32dd5e7e3048cb5e5922d6
BLAKE2b-256 5038f7dcc62943d0870f02df9e2fa527b7f0cd86b233a80d6e503a08f3ef5ddc

See more details on using hashes here.

Supported by

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