bin.docopt

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

Module Contents

bin.docopt.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…

docstr

Description of your command-line interface.

argvlist of str, optional

Argument vector to be parsed. sys.argv[1:] is used if not provided.

helpbool (default: True)

Set to False to disable automatic help on -h or –help options.

versionany object

If passed, the object will be printed if –version is in argv.

options_firstbool (default: False)

Set to True to require options precede positional arguments, i.e. to forbid options and positional arguments intermix.

argsdict

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.

>>> 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}