docopt позиционные аргументы не работают

Следуя docopt README, я ожидаю, что следующий файл выдаст корректный вывод:

#!/usr/bin/env python
"""Example file.

Usage:

  test_docopt.py test
  test_docopt.py (-h | --help)
  test_docopt.py --version

Options:
  -h --help                       Show this screen
  --version                       Show version.

"""

import pkg_resources
pkg_resources.require("docopt==0.6.1")
from docopt import docopt

if __name__ == '__main__':
    args = docopt(__doc__, version="Extend limb profiles 0.1")
    print(args)

Однако, когда я вызываю test_docopt.py, я получаю только бессмысленный/пустой оператор Usage:

$ python test_docopt.py test
Usage:

Мои два вопроса:

  • Почему docopt явно не распознает команду test?
  • Почему шаблон Usage не заполнен фактическим шаблоном использования?

person andreas-h    schedule 09.04.2013    source источник


Ответы (1)


Вам нужно удалить пустую строку между Usage: и самим использованием. Из README.rst

Шаблон использования — это подстрока документа, которая начинается с использования: (без учета регистра) и заканчивается явно пустой строкой.

Поместив пустую строку сразу после Usage:, вы тут же закончите шаблон использования.

person Vladimir Keleshev    schedule 09.04.2013