Skip to main content

A library for simplified executing of system commands

Project description

Purpose

The sysexecute python package allows the easier execution of system tasks. Part of this is an auto-formatting mechanism for variable substitution, part of this is being able to simply specify the execution options.

Installation

You can install sysexecute from PyPi via pip:

pip install sysexecute

Variable Substitution

Typically in python to format a string we might do something like:

val = 3
print("the value of val is {val}".format(val=val))

This is kind of long and redundant. If we already have a value for val then it should be able to just be substituted. In fact if we do

from sysexecute import *
val = 3
print (stringWithVars("the value of val is {val}"))

The bindings for the variables follow normal python scoping rules. This makes the execution statements a good bit more readable.

Execution

Here is a typical execution

execute("ssh {machineIP} ls {thePath}")

assuming the variable machineIP and thePath have values. The normal output of this script gets piped to StdOut and StdErr, but if you want to capture these you can with something like:

(rc, stdout, stderr) = execute("ssh {machineIP} ls {thePath}", captureStdOutStdErr=True)

There are various keyword options you can specify like:

  • cwd : change the directory from which the command will be executed
  • ignoreErrors: Unless this is true a sys.exit(returnCode) will be issued if there is a non-zero return code.
  • shell: if a shell should be used (defaults to True)
  • executable: which shell to use (defaults to /bin/bash)
  • colorize: wether to colorize the output (defaults to True)
  • dryRun : print what would be executed but don't actually execute anything

Verbosity

Often in scripting we want to include debugging / info commentary depending on what level of verbosity we are requested to display. You can set the level of verbosity shown via eg:

set_execute_defaults('verbosity',2)

Then in the following only the first two strings would be printed:

printWithVars1("success!")
printWithVars2("Machine {machineIP} was reached.")
printWithVars3("You might want to check that blah and blah.")

Testing

To run the test suite you need py.test installed on your machine. Then you can simply execute:

cd tests
py.test

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

sysexecute-1.2.1.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

sysexecute-1.2.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file sysexecute-1.2.1.tar.gz.

File metadata

  • Download URL: sysexecute-1.2.1.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for sysexecute-1.2.1.tar.gz
Algorithm Hash digest
SHA256 5f472744fd1de755cf7685abc1b1b002821bf549e788f2079ce262731a0097de
MD5 1ec976b554ffde385f5ae4bc89d9aa2f
BLAKE2b-256 6aa69805c1f7bfb7c724914a4e9982a0ce08ada8429c03ceb473a262a19018f4

See more details on using hashes here.

File details

Details for the file sysexecute-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: sysexecute-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for sysexecute-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 64062b595079144c8a9c2e1688a3e054bf8e75714b40f678b77190c3fabc7fe8
MD5 4f94559869e8ab0f6c8a76e7242594a3
BLAKE2b-256 413f1f8e38e8187e98fa48c05dbfb4c53fe7303d1393236675561e5a4a75504e

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