IcsUtils.CLI Common Library

Pythonic command-line interface parser that will make you smile.

opslib.icsutils.cli.docopt(doc, argv=None, help=True, version=None, options_first=False)[source]

Parse argv based on command-line interface described in doc.

docopt creates your command-line interface based on its description that you pass as doc. Such description can contain –options, <positional-argument>, commands, which could be [optional], (required), (mutually | exclusive) or repeated...

Parameters

doc : str
Description of your command-line interface.
argv : list of str, optional
Argument vector to be parsed. sys.argv[1:] is used if not provided.
help : bool (default: True)
Set to False to disable automatic help on -h or –help options.
version : any object
If passed, the object will be printed if –version is in argv.a
options_first : bool (default: False)
Set to True to require options precede positional arguments, i.e. to forbid options and positional arguments intermix.

Returns

args : dict
A dictionary, where keys are names of command-line elements such as e.g. “–verbose” and “<path>”, and values are the parsed values of those elements.

Example

>>> from docopt import docopt
>>> doc = '''
... Usage:
...     my_program tcp <host> <port> [--timeout=<seconds>]
...     my_program serial <port> [--baud=<n>] [--timeout=<seconds>]
...     my_program (-h | --help | --version)
...
... Options:
...     -h, --help  Show this screen and exit.
...     --baud=<n>  Baudrate [default: 9600]
... '''
>>> argv = ['tcp', '127.0.0.1', '80', '--timeout', '30']
>>> docopt(doc, argv)
{'--baud': '9600',
 '--help': False,
 '--timeout': '30',
 '--version': False,
 '<host>': '127.0.0.1',
 '<port>': '80',
 'serial': False,
 'tcp': True}

See also

Indices and tables

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.