Я сделал столько исследований, насколько это возможно, но я не нашел лучшего способа сделать некоторые аргументы cmdline необходимыми только при определенных условиях, в этом случае, только если были даны другие аргументы. Вот что я хочу сделать на очень базовом уровне:
p = argparse.ArgumentParser(description='...')
p.add_argument('--argument', required=False)
p.add_argument('-a', required=False) # only required if --argument is given
p.add_argument('-b', required=False) # only required if --argument is given
Из того, что я видел, другие люди, кажется, просто добавляют свою собственную проверку в конце:
if args.argument and (args.a is None or args.b is None):
# raise argparse error here
Есть ли способ сделать это изначально внутри пакета argparse?