У меня есть набор аргументов, которые можно логически разделить в 2 группы:
- Действия:
A1
,A2
,A3
и т.д. - Информация:
I1
,I2
,I3
и т.д.
Для запуска программы требуется хотя бы один из этих аргументов, но аргументы "информация" могут использоваться с аргументами "action". Так
- Требуется хотя бы одно из действий или информации
- Все действия являются взаимоисключающими.
Я не могу найти, как это сделать, используя argparse. Я знаю о add_mutually_exclusive_group
и его аргументе required
, но я не могу использовать его в "Действиях", потому что это фактически не требуется. Конечно, я могу добавить условие после argparse, чтобы вручную проверить мои правила, но это похоже на взломать. Может ли argparse сделать это?
Изменить: Извините, вот несколько примеров.
# Should pass
--A1
--I1
--A1 --I2
--A2 --I1 --I2
# Shouldn't pass
--A1 --A2
--A1 --A2 --I1