docopt интерпретирует любой -v как версию

Я создаю cli с помощью docopt и имею следующую проблему (я приведу примеры из их примера naval_fate cli)

naval-fate --version или же naval-fate -v вернет Cli версию, но когда попробуем сделать, скажем, naval-fate ship -v для другой цели он автоматически возвращает тот же результат, что и первые две команды.

Есть ли способ предотвратить это у Докопта?

Спасибо

1 ответ

Вы можете предотвратить анализ Docopt -v как особый вариант, просто упомяните его в строке документации, как вариант. Например, предположим, что вы хотели бы использовать -v для многословия:

!/usr/bin/python
"""
Usage: ./ [options]

Options:
-v  show verbose printing
"""
from docopt import docopt

arguments = docopt(__doc__)
if arguments["-v"] == True:
    print "A verbose message"

В этом случае запуск сценария без параметров ничего не даст, а запуск с -v сгенерирует строку "Подробное сообщение"

Другие вопросы по тегам