Skip to main content
Logo Version Downloads Status Python Versions Coverage Status

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

from sh import git
print(git("status", "--short"))

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

sh relies on various Unix system calls and only works on Unix-like operating systems - Linux, macOS, BSDs etc. Specifically, Windows is not supported.

Complete documentation here

Full documentation on a single page for LLM-assisted coding here

Installation

$> pip install sh

Support

Developers

Open the repo in a devcontainer in VScode, or in a codespace on Github.

Open in GitHub Codespaces

Testing

Tests are run by tox against all supported Python versions. To run, make the following target:

$> make test

To run a single test:

$> make test='FunctionalTests.test_background' test_one

Docs

To build the docs, make sure you’ve run poetry install to install the dev dependencies, then:

$> cd docs
$> make html

This will generate the docs in docs/build/html. You can open the index.html file in your browser to view the docs.

Coverage

First run all of the tests:

$> SH_TESTS_RUNNING=1 coverage run --source=sh -m pytest

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

Uploaded Source

Built Distribution

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

sh-2.4.0-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sh-2.4.0.tar.gz
  • Upload date:
  • Size: 136.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sh-2.4.0.tar.gz
Algorithm Hash digest
SHA256 a250aef68509ed93419c9a1d90b0647cd5cbe26107ba94d3717ef5b6d595ffd9
MD5 3c11c9c853bf3d326dab0167e9610187
BLAKE2b-256 e9c8137093889a8b8c9a66c9b46079cf2a0e155a8be027df212a4041e3b7b09c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sh-2.4.0.tar.gz:

Publisher: main.yml on amoffat/sh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sh-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: sh-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for sh-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98eba32eeb5ecdd310668737d7461e668afc42b273550d0bc198a1c5c2b1ab36
MD5 22137d180a7416a9a412b6138086f0d0
BLAKE2b-256 23dd6b9aceecddbb3df894003d6a5005bd90bce3cf4743c28c406ebecc8d80f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sh-2.4.0-py3-none-any.whl:

Publisher: main.yml on amoffat/sh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 files

2.3.0

2 files

2.2.6

2 files

2.2.5

2 files

2.2.4

2 files

2.2.3

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.0

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.14.3

1 file

1.14.2

2 files

1.14.1

2 files

1.14.0

2 files

1.13.1

2 files

1.13.0

2 files

1.12.14

2 files

1.12.13

2 files

1.12.12

2 files

1.12.11

2 files

1.12.10

2 files

1.12.9

2 files

1.12.8

2 files

1.12.7

2 files

1.12.6

2 files

1.12.5

2 files

1.12.4

2 files

1.12.3

2 files

1.12.2

2 files

1.12.1

2 files

1.12.0

2 files

1.11

1 file

1.10

1 file

1.09

1 file

1.08

1 file

1.07

1 file

1.06

1 file

1.05

1 file

1.04

1 file

1.03

1 file

1.02

1 file

1.01

1 file

1.0

1 file

0.108

1 file

0.107

1 file

0.106

1 file

0.01

Supported by

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