Skip to main content

Utility to call system commands from python

Project description

https://img.shields.io/pypi/v/pysyscmd.svg

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysyscmd-1.0.0.tar.gz (12.3 kB view details)

Uploaded Source

File details

Details for the file pysyscmd-1.0.0.tar.gz.

File metadata

  • Download URL: pysyscmd-1.0.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pysyscmd-1.0.0.tar.gz
Algorithm Hash digest
SHA256 90e7b55e7efe79a9f9e07a202543a5162628608a560102b61993eae5f87be8a5
MD5 dfe2403f81203c7b03e250bfa6cc5389
BLAKE2b-256 2aac0a5cd51901b6f4960c503ce0acc0348efe054c97812a6aa09ea1c0ba277c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page