first commit
This commit is contained in:
commit
417e54da96
5696 changed files with 900003 additions and 0 deletions
|
@ -0,0 +1,134 @@
|
|||
Metadata-Version: 2.1
|
||||
Name: sh
|
||||
Version: 1.14.3
|
||||
Summary: Python subprocess replacement
|
||||
Home-page: https://github.com/amoffat/sh
|
||||
Author: Andrew Moffat
|
||||
Author-email: arwmoffat@gmail.com
|
||||
Maintainer: Andrew Moffat
|
||||
Maintainer-email: arwmoffat@gmail.com
|
||||
License: MIT
|
||||
Keywords: subprocess,process,shell,launch,program
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Environment :: Console
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 2.6
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.1
|
||||
Classifier: Programming Language :: Python :: 3.2
|
||||
Classifier: Programming Language :: Python :: 3.3
|
||||
Classifier: Programming Language :: Python :: 3.4
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: Implementation :: CPython
|
||||
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||
Classifier: Topic :: Software Development :: Build Tools
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
License-File: LICENSE.txt
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/amoffat/sh/master/logo-230.png
|
||||
:target: https://amoffat.github.com/sh
|
||||
:alt: Logo
|
||||
|
||||
|
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/sh.svg?style=flat-square
|
||||
:target: https://pypi.python.org/pypi/sh
|
||||
:alt: Version
|
||||
.. image:: https://img.shields.io/pypi/dm/sh.svg?style=flat-square
|
||||
:target: https://pypi.python.org/pypi/sh
|
||||
:alt: Downloads Status
|
||||
.. image:: https://img.shields.io/pypi/pyversions/sh.svg?style=flat-square
|
||||
:target: https://pypi.python.org/pypi/sh
|
||||
:alt: Python Versions
|
||||
.. image:: https://img.shields.io/travis/amoffat/sh/master.svg?style=flat-square
|
||||
:target: https://travis-ci.org/amoffat/sh
|
||||
:alt: Build Status
|
||||
.. image:: https://img.shields.io/coveralls/amoffat/sh.svg?style=flat-square
|
||||
:target: https://coveralls.io/r/amoffat/sh?branch=master
|
||||
:alt: Coverage Status
|
||||
|
||||
|
|
||||
|
||||
sh is a full-fledged subprocess replacement for Python 2, Python 3, PyPy and PyPy3
|
||||
that allows you to call *any* program as if it were a function:
|
||||
|
||||
.. code:: python
|
||||
|
||||
from sh import ifconfig
|
||||
print(ifconfig("eth0"))
|
||||
|
||||
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 <https://amoffat.github.io/sh>`_
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
::
|
||||
|
||||
$> pip install sh
|
||||
|
||||
Support
|
||||
=======
|
||||
* `Andrew Moffat <https://github.com/amoffat>`_ - author/maintainer
|
||||
* `Erik Cederstrand <https://github.com/ecederstrand>`_ - maintainer
|
||||
|
||||
|
||||
Developers
|
||||
==========
|
||||
|
||||
Updating the docs
|
||||
-----------------
|
||||
|
||||
Check out the `gh-pages <https://github.com/amoffat/sh/tree/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 supported python versions. 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::
|
||||
|
||||
$> SH_TESTS_RUNNING=1 coverage run --source=sh -m unittest
|
||||
|
||||
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.
|
|
@ -0,0 +1,12 @@
|
|||
CHANGELOG.md
|
||||
LICENSE.txt
|
||||
MANIFEST.in
|
||||
README.rst
|
||||
setup.cfg
|
||||
setup.py
|
||||
sh.py
|
||||
test.py
|
||||
sh.egg-info/PKG-INFO
|
||||
sh.egg-info/SOURCES.txt
|
||||
sh.egg-info/dependency_links.txt
|
||||
sh.egg-info/top_level.txt
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
../__pycache__/sh.cpython-311.pyc
|
||||
../sh.py
|
||||
PKG-INFO
|
||||
SOURCES.txt
|
||||
dependency_links.txt
|
||||
top_level.txt
|
|
@ -0,0 +1 @@
|
|||
sh
|
Loading…
Add table
Add a link
Reference in a new issue