Форматирование использования с Docopt
У меня проблема с моими заявлениями об использовании в docopt.
Вот как я ожидаю, что использование будет работать в сценарии. Необязательные параметры (определены с помощью []), я хотел бы иметь возможность использовать их вместе или по отдельности. Так -t -o
или же -o
или же -t
должно быть в силе. На данный момент я не могу использовать -o
без -t
, Если я использую трубу |
чтобы разделить их, я не могу использовать оба одновременно. Я пробовал разные комбинации. Я не могу заставить его работать как ID. Кто-нибудь может указать, где я иду не так?
"""
Description:
Script does stuff
Usage:
script.py (-d <ditem>) (-u <uitem>) (-p <pitem>) (-s <sfile>) [-t <tfile>] [-o <ofile>] [-v]
script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
script.py -h | --help
script.py --version
Options:
-v --verbose Does stuff
-t --tfile Does stuff
-o --output Does stuff
-l --litem Does stuff
-u --uitem Does stuff
-p --pitem Does stuff
-d --ditem Does stuff
-s --sitem Does stuff
-h --help Show this screen.
--version Show version.
"""
2 ответа
Я смог решить эту проблему с помощью следующего:
Добавляя строки использования script.py (-d <ditem>) (-l) ([-t <tfile>] | [-o <ofile>]) [-v]
и другой script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
значит я могу использовать -t
а также -o
самостоятельно или -t -o
все вместе. Однако я не могу использовать их в этом порядке -o -t
,
Description:
Script does stuff
Usage:
script.py (-d <ditem>) (-u <uitem>) (-p <pitem>) (-s <sfile>) [-t <tfile>] [-o <ofile>] [-v]
script.py (-d <ditem>) (-l) ([-t <tfile>] | [-o <ofile>]) [-v]
script.py (-d <ditem>) (-l) [-t <tfile>] [-o <ofile>] [-v]
script.py -h | --help
script.py --version
Позволять -t
вместе, -o
вместе, -t
а также -o
вместе:
Script does stuff.
Usage:
script.py [-t] [-o]
Options:
-t --tfile Does stuff
-o --output Does stuff
Если это ошибка, когда оба -t
а также -o
отсутствуют:
Script does stuff.
Usage:
script.py -t
script.py -o
script.py -t -o
Options:
-t --tfile Does stuff
-o --output Does stuff