docopt / docopt

Create *beautiful* command-line interfaces with Python

Home Page:docopt.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docopt 0.6 fails to handle very simple usage message with two subcommands

schmir opened this issue · comments

There's a rather serious regression in docopt 0.6.

The following program fails to parse a simple "fs fail --loglevel
5". Instead it prints the usage message:

#! /usr/bin/env python

"""
Usage:
  fs good [options]
  fs fail [options]

Options:
      --loglevel=<level>       loglevel
"""

import docopt
print docopt.docopt(__doc__)

i.e. with docopt 0.6 I get

[dev]  ~/ % ./fs good --loglevel 5
{'--loglevel': '5',
 'fail': False,
 'good': True}
[dev]  ~/ % ./fs fail --loglevel 5
Usage:
  fs good [options]
  fs fail [options]

Without the --loglevel parameter it's working:

[dev]  ~/ % ./fs fail
{'--loglevel': None,
 'fail': True,
 'good': False}

with 0.5 I get the expected results:

[dev]  ~/ % ./fs good --loglevel 5
{'--loglevel': '5',
 'fail': False,
 'good': True}
[dev]  ~/ % ./fs fail --loglevel 5
{'--loglevel': '5',
 'fail': True,
 'good': False}