Зависимые параметры в docopt - PullRequest
0 голосов
/ 15 апреля 2019

Мне было интересно, могу ли я иметь зависимые параметры в docopt.

пример:

"""
Description:
  Flash a system with the manufacturing software from the specifiedx folder.

Usage:
  flash_drop.py (--drop-dir=<DIR>) [--factory-reset=<BOOL>] [--flash-all=<BOOL>] [--flash-system1=<BOOL> | --flash-system2=<BOOL>]
  flash_drop.py -h | --help
  flash_drop.py --version

Options:
  -h --help                 Show this screen.
  --version                 Show version.
  --drop-dir=DIR            Path to the drop directory
  --factory-reset=BOOL          Factory reset the chips on all selected devices. [default: False]
  --flash-all=BOOL              Flash all devices. [default: False]
  --flash-system1=BOOL          Flash first system. [default: False]
  --flash-system2=BOOL          Flash second system. [default: False]
"""

А именно, значение параметра игнорируется, если предыдущий параметр не был выбран. Так, например, значение для --flash-system2 игнорируется, если --flash-system1 не установлено

1 Ответ

0 голосов
/ 15 апреля 2019

Если есть возможность изменить код, вы можете игнорировать их программно, например:

args['flash-system2'] = args['flash-system2'] if args['flash-system1'] else None

или

if ('flash-system2' in args) and ('flash-system1' not in args):
    del args['flash-system2']

сразу после разбора аргументов

...