Использование argparse модуль питона я хочу передать параметры прог двумя способами:Argparse группы в
Метод 1:
./filter.py filename --start_regex "^FOO" --end_regex "BAR$" --contains "XXX" --bunch_of_common_options
Метод 2:
./filter.py filename --type "FOO_BAR_XXX" --bunch_of_common_options
Логически оба делают точно так же, поскольку в есть dict, который переводит тип «FOO_BAR_XXX» из метода 2 в соответствующие варианты для метода 1.
Я хочу, чтобы указать, что, учитывая:
GroupA = (--start_regex, --end_regex --contains)
GroupB = (--type)
GroupA и GroupB являются:
- взаимоисключающими, и
- GroupA должны иметь по крайней мере start_regex определено
Теперь я знаю mutually_exclusive_group функциональности, но он работает только на отдельных аргументов (не группы вариантов), и sub-commands, но, похоже, я бы есть какой-то вариант отправки после prog.py, как «мерзавца клон --help», или «мерзавец нажимной --help» (this пост доказывает, что)
Обратите внимание, что это не так элегантно сказать:
./filter.py with_type filename --type TYPE1
./filter.py without_type filename --start_regex "^FOO" --end_regex "BAR$" --contains "XXX"
Или я что-то упускаю?