cmdhelper
cmdhelper is a Python utility for writing command line scripts with a consistent style, default set of command line options, and common approach to logging.
cmdhelper provides:
- Parsing of command line options using either argparse or optparse.
- Setup of logging with the possibility to copy stdout or stderr into the logfile.
- Possibility to e-mail log messages upon completion with an option to send the e-mail only if a log message with a severity at or above a trigger level was recorded.
- Definition of a set of default options, including options to set verbosity and logging options.
- A utility function to run external commands whose output can be logged and parsed for error messages.
- A utility function for asking the user to confirm actions.
Example
A script that processes different commands with optional command arguments might include:
from cmdhelper import *
cmdHelper = CmdHelper('argparse', __version__)
cmdHelper.add_argument('cmd', help='command')
cmdHelper.add_argument('args', help='command arguments', nargs='*')
cmdHelper.add_option('-x', '--example', dest='value', default=None, help='sample option')
options = cmdHelper.parse()
try:
# processing goes here
pass
except Exception as e:
handleError(e, options.debug)
Running the above code with --help will produce the following output:
usage: example.py [-h] [--version] [-i] [-v] [--debug] [--noscreen]
[--logfile LOGFILE] [--loglevel LOGLEVEL]
[--logseparator LOGSEPARATOR]
[--logtimestampfmt LOGTIMESTAMPFMT] [--emailto EMAILTO]
[--emailsubject EMAILSUBJECT] [--emaillevel EMAILLEVEL]
[--emailtriglevel EMAILTRIGLEVEL] [-x VALUE]
cmd [args [args ...]]
positional arguments:
cmd command
args command arguments
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
-i, --interactive enter interactive Python at completion
-v, --verbose verbose output
--debug debugging output
--noscreen disable logging output to screen
--logfile LOGFILE write logging information to this file (default: )
--loglevel LOGLEVEL logging level for logfile (default: INFO or DEBUG)
--logseparator LOGSEPARATOR
message to write to logfile at beginning of new log
--logtimestampfmt LOGTIMESTAMPFMT
timestamp format string (in logging formatter format)
--emailto EMAILTO email address receiving any log messages
--emailsubject EMAILSUBJECT
subject for log e-mails
--emaillevel EMAILLEVEL
logging level for e-mails (default: WARNING)
--emailtriglevel EMAILTRIGLEVEL
trigger level for sending e-mails (default: None)
-x VALUE, --example VALUE
sample option
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cmdhelper-0.4.0.tar.gz
(12.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
cmdhelper-0.4.0-py3-none-any.whl
(12.1 kB
view details)
File details
Details for the file cmdhelper-0.4.0.tar.gz.
File metadata
- Download URL: cmdhelper-0.4.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ea743cf114b40e54f69e6570db3ded365b6f0c52008633936cd54a9e0a1daee
|
|
| MD5 |
cfea39fe6c9b2b838b267f2de7fd2d82
|
|
| BLAKE2b-256 |
3c68df2201ba252c7783c95c97b8adb1e2034cbc561c0bba0f42c42b756f9626
|
File details
Details for the file cmdhelper-0.4.0-py3-none-any.whl.
File metadata
- Download URL: cmdhelper-0.4.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
218a1ab1ecbf4588ee035805e3bd315d33dafec54698eb92e19a2c017ba7c837
|
|
| MD5 |
0a51f277944f760e50d69ca69d82c4f1
|
|
| BLAKE2b-256 |
e69d6a13b099a5bf14bd24a53be75421a4d3779de76c417bae19ff75d03978f8
|