Форматирование использования с 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
Другие вопросы по тегам