This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

simple script parameter parser

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

Release History

Release History

This version
History Node

0.80.5

History Node

0.80.4

History Node

0.80.3

History Node

0.80.2

History Node

0.80.1

History Node

0.80.0

History Node

0.79.3

History Node

0.79.2

History Node

0.79.1

History Node

0.79.0

History Node

0.78.1

History Node

0.78.0

History Node

0.77.4

History Node

0.77.3

History Node

0.77.2

History Node

0.77.1

History Node

0.77.1a1

History Node

0.77.0

History Node

0.76.0

History Node

0.75.5

History Node

0.75.4

History Node

0.75.3

History Node

0.75.2

History Node

0.75.1

History Node

0.75.0

History Node

0.74.41

History Node

0.74.39

History Node

0.74.38

History Node

0.74.37

History Node

0.74.36

History Node

0.74.35

History Node

0.74.34

History Node

0.74.33

History Node

0.74.32

History Node

0.74.31

History Node

0.74.30

History Node

0.74.28

History Node

0.74.27

History Node

0.74.26

History Node

0.74.25

History Node

0.74.24

History Node

0.74.23

History Node

0.74.22

History Node

0.74.21

History Node

0.74.20

History Node

0.74.19

History Node

0.74.18

History Node

0.74.17

History Node

0.74.16

History Node

0.74.15

History Node

0.74.14

History Node

0.74.13

History Node

0.74.12

History Node

0.74.11

History Node

0.74.9

History Node

0.74.8

History Node

0.74.7

History Node

0.74.06

History Node

0.74.05

History Node

0.74.04

History Node

0.74.03

History Node

0.74.02

History Node

0.73.02

History Node

0.73.01

History Node

0.72.03

History Node

0.72.02

History Node

0.72.01

History Node

0.72.00

History Node

0.71.01

History Node

0.70.82

History Node

0.70.81

History Node

0.70.8

History Node

0.70.7

History Node

0.70.6

History Node

0.70.5

History Node

0.70.4

History Node

0.70.3

History Node

0.53.0

History Node

0.52.0

History Node

0.50.09

History Node

0.50.08

History Node

0.50.07

History Node

0.50.06

History Node

0.50.05

History Node

0.50.04

History Node

0.50.03

History Node

0.50.01

History Node

0.45.003

History Node

0.45.001

History Node

0.45.000

History Node

0.41.005

History Node

0.7.2

History Node

0.7.1

History Node

0.7.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
scription-0.80.5-py2-none-any.whl (53.4 kB) Copy SHA256 Checksum SHA256 py2 Wheel Jun 15, 2017
scription-0.80.5-py3-none-any.whl (53.4 kB) Copy SHA256 Checksum SHA256 py3 Wheel Jun 15, 2017
scription-0.80.5.tar.gz (61.4 kB) Copy SHA256 Checksum SHA256 Source Jun 15, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting