0 purchases
pysyscmd 1.0.0
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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.