Utility to call any system command from python.
Import any program that’s on your PATH from syscmd.cmds and you’ll get a function that executes the program with the given positional arguments. By, default, the function uses subprocess.check_call to execute the program. But this can be changed by passing in one of syscmd.CALL, syscmd.CHECK_CALL, or syscmd.CHECK_OUTPUT as the f argument to your function to get the respective subprocess function. Expect the same behavior from the imported syscmd functions as the subprocess functions, eg. return value, standard in/out/error, etc.
In addition to the positional arguments and f, the imported functions also accept all the keyword arguments of the underlying subprocess functions.
Examples:
# Import various system commands
>>> from syscmd.cmds import echo, ls, true, false
# Run 'echo' with three positional arguments; stdout goes to stdout and the
# exit code is returned
>>> res = echo('one', 'two', 'three')
one two three
>>> print res
0
# Run 'ls' with no arguments
>>> res = ls()
AUTHORS.rst MANIFEST.in setup.cfg
CONTRIBUTING.rst README.rst setup.py
HISTORY.rst docs syscmd
LICENSE requirements.txt tox.ini
# Run 'ls' with the '-l' option on 'README.rst'
>>> res = ls('-l', 'README.rst')
-rw-r--r-- 1 swillis staff 1904 Apr 21 13:13 README.rst
# Run 'true'
>>> res = true()
>>> print res
0
# Run 'false'
>>> res = false()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "syscmd/cmds.py", line 57, in _cmd
return f(full_args, **full_kwargs)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '('/usr/bin/false',)' returned non-zero exit status 1
# Uh-oh... a non-zero exit code raises an exception because it's run with
# 'subprocess.check_call'
# Import CALL from syscmd
>>> from syscmd import CALL
>>> res = false(f=CALL)
# Now running 'false' doesn't cause an exception, but we still get the exit
# code as the return value
>>> print res
1
Free software: BSD license
Features
TODO
History
1.0.0 (2015-10-28)
Documentation updates
Code is stable, no reason not to be at a 1.0.0 release
0.1.0 (2015-01-11)
First release on PyPI.
Metadata
Release files for pysyscmd 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pysyscmd-1.0.0.tar.gz | 12.3 kB | Without provenance | Details for pysyscmd-1.0.0.tar.gz |
Release files / pysyscmd-1.0.0.tar.gz
| Download URL | pysyscmd-1.0.0.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90e7b55e7efe79a9f9e07a202543a5162628608a560102b61993eae5f87be8a5
|
|
BLAKE2b-256 checksum How to use checksums |
2aac0a5cd51901b6f4960c503ce0acc0348efe054c97812a6aa09ea1c0ba277c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pysyscmd 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.