docopt.docopt

docopt.docopt(doc, argv=None, help=True, version=None, options_first=False)

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

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.
options_first : bool (default: False)
Set to True to require options preceed positional arguments, i.e. to forbid options and positional arguments intermix.
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.
>>> 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}

Navigation