Dado:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo')
pa.add_argument('--bar')
print pa.parse_args('--foo 1'.split())
como é que eu
- fazer pelo menos um dos "foo, bar" obrigatória:
--foo x
,--bar y
e--foo x --bar y
estão bem - tornar no máximo um de "foo, bar" obrigatório:
--foo x
ou--bar y
está bom,--foo x --bar y
não é
Respostas:
Acho que você está procurando algo como exclusão mútua (pelo menos na segunda parte da sua pergunta).
Dessa forma, somente foo ou bar serão aceitos, não os dois.
BTW, acabei de encontrar outra pergunta referente ao mesmo tipo de problema.
Espero que isto ajude
fonte
XOR
basicamente). Minha preocupação inicial era que a sua só resolvesse apenas uma das duas condições.Se você precisar de alguma verificação que não seja fornecida pelo módulo, sempre poderá fazê-lo manualmente:
fonte