1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[v11]= Python subprocess replacement (3.11)
8 SDESC[v12]= Python subprocess replacement (3.12)
9 HOMEPAGE= https://sh.readthedocs.io/
10 CONTACT= Python_Automaton[python@ironwolf.systems]
13 SITES[main]= PYPIWHL/53/08/9de3e477ad2fd432e78ce351341686d1bbec346976b22c7cc5f81f1ff15a
14 DISTFILE[1]= sh-2.0.6-py3-none-any.whl:main
19 OPTIONS_AVAILABLE= PY311 PY312
20 OPTIONS_STANDARD= none
21 VOPTS[v11]= PY311=ON PY312=OFF
22 VOPTS[v12]= PY311=OFF PY312=ON
24 DISTNAME= sh-2.0.6.dist-info
28 [PY311].USES_ON= python:v11,wheel
30 [PY312].USES_ON= python:v12,wheel
32 [FILE:1406:descriptions/desc.single]
35 **If you are migrating from 1.* to 2.*, please see MIGRATION.md**
40 :alt: Downloads Status
46 sh is a full-fledged subprocess replacement for Python 3.8 - 3.11, and PyPy
47 that allows you to call *any* program as if it were a function:
51 from sh import ifconfig
52 print(ifconfig("eth0"))
54 sh is *not* a collection of system commands implemented in Python.
56 sh relies on various Unix system calls and only works on Unix-like
58 systems - Linux, macOS, BSDs etc. Specifically, Windows is not supported.
60 [Complete documentation here]
71 * [Andrew Moffat] - author/maintainer
72 * [Erik Cederstrand] - maintainer
80 Tests are run in a docker container against all supported Python versions.
81 To run, make the following target::
85 To run a single test::
87 $> make test='FunctionalTests.test_background' test_one
92 First run all of the tests::
94 $> SH_TESTS_RUNNING=1 coverage run --source=sh -m pytest
96 This will aggregate a ``.coverage``. You may then visualize the report
101 Or generate visual html files with::
105 Which will create ``./htmlcov/index.html`` that you may open in a web
110 ced8f2e081a858b66a46ace3703dec243779abbd5a1887ba7e3c34f34da70cd2 38120 sh-2.0.6-py3-none-any.whl