scription 0.80.8
pip install scription==0.80.8
Released:
simple script parameter parser
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: BSD License (BSD License)
- Author: Ethan Furman
Classifiers
- Development Status
- Intended Audience
- License
- Programming Language
- Topic
Project description
scription
light-weight library to enhance command-line scripts; includes conversion of parameters to specified data types, parameter checking, basic input/output with users, support for suid [1], sending email, executing sub-programs, and having sub-commands within a script
decorators
Script: sets global variables and/or parameters for Commands; the decorated function will be called by Main/Run before any specified Command
Command: marks function as a subcommand for the script (e.g. add, delete, list, etc.); if no subcommand is specified on the command-line, scription will look for a Command with the same name as the script
Alias: registers other names for Commands (e.g. delete / remove / kill)
functions
Main: if the importing module’s __name__ is __main__, call Run() (this allows for importing the script as a module)
Run: unconditionally attempts to run the Script function (if any) and the Command found on the command-line
Main() or Run() should be the last thing in the script
classes
Spec: can be used when defining the command-line parameters (can also just use tuples)
helper functions/classes
abort: quits immediately by raising SystemExit
Execute: class for executing other programs; uses subprocess.Popen by default, but if pty=True is specified then pty.fork will be used (handy for programs that only accept input from a pty)
get_response: function for displaying text and getting feedback
help: quits immediately, but adds a reference to –help in the quit message
log_exception: logs an exception with logging.logger
mail: rudimentary mail sender
OrmFile: lightweight orm – supports str, int, float, date, time, datetime, bool, and path (which defaults to str); custom data types can also be specified
print: wrapper around print that adds a ‘verbose_level’ keyword (default: 1); default verbosity is 0 (so print does nothing), but can be increased using -v, -vv, –verbose, or –verbose=2 (in Python 2 the script must use ‘from __future__ import print_function’ to use scription’s print)
user_ids: context manager useful for suid scripts – all actions taken within the context are run as the user/group specified
features
extra parameters defined by Script are global, and can be accessed from any function or Command
‘module’ is a namespace inserted into the script
‘script_command’ is the Command selected from the command line (useful when one needs to call the subcommand directly from a main() function)
‘script_command_name’ is the name of the script_command
‘script_verbosity’ is the level of verboseness selected (defaults to 0)
‘script_name’ is the name of the script
builtin options are: –help, –verbose (-v or -vv), –version, –all-versions –version attempts to display the version of the main package in use –all-versions attempts to display the versions of any imported packages
command-line is decoded to unicode under Python 2 (Python 3 does this for us)
[1] I use the suid-python program, available at http://selliott.org/python/suid-python.c
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: BSD License (BSD License)
- Author: Ethan Furman
Classifiers
- Development Status
- Intended Audience
- License
- Programming Language
- Topic
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file scription-0.80.8.tar.gz
.
File metadata
- Download URL: scription-0.80.8.tar.gz
- Upload date:
- Size: 62.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 943da5846b103674ccd3533490d2b82b7a3f39f12588b0dba5c6d37759513ae9 |
|
MD5 | 09784ee9338c8b3b7054ab82041aa291 |
|
BLAKE2b-256 | 2e1fc5f5a8fb053e8f1ef53d8d0b89e5a23589e40e1ad1659b8a11c096ceb921 |
File details
Details for the file scription-0.80.8-py3-none-any.whl
.
File metadata
- Download URL: scription-0.80.8-py3-none-any.whl
- Upload date:
- Size: 54.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01127963848d0f0e9caad9d6108709aac5dfa8fd755cd53576b28b389ac766eb |
|
MD5 | bea715539a4000589f02fea3be75de1e |
|
BLAKE2b-256 | 210ea0efe739fb549cb9771d674e5eadf15e75272266fbf0dfe73326ce319fb7 |
File details
Details for the file scription-0.80.8-py2-none-any.whl
.
File metadata
- Download URL: scription-0.80.8-py2-none-any.whl
- Upload date:
- Size: 54.1 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1026ccf6e85d915fe9b5d45d304603059837f45e35e9e9dc4dce0f0e112b6c35 |
|
MD5 | 601948725b5140f3cbaec7d178f9aa20 |
|
BLAKE2b-256 | e00f66747b9efe26c750e85e78d0d84ec71f0abb159d143b0bab1e676fea3bc9 |