Dado:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo')
pa.add_argument('--bar')
print pa.parse_args('--foo 1'.split())
Cómo puedo
- realizar al menos uno de "foo, bar" obligatorios:
--foo x
,--bar y
y--foo x --bar y
están bien - hacer a lo sumo uno de "foo, bar" obligatorio:
--foo x
o--bar y
están bien,--foo x --bar y
no es
Respuestas:
Creo que está buscando algo como la exclusión mutua (al menos para la segunda parte de su pregunta).
De esta manera, solo se aceptarán foo o bar, no ambos.
Por cierto, acabo de encontrar otra pregunta que se refiere al mismo tipo de problema.
Espero que esto ayude
fuente
XOR
, básicamente). Mi preocupación inicial era que la suya solo resolviera una de las dos condiciones.Si necesita alguna comprobación que no proporciona el módulo, siempre puede hacerlo manualmente:
fuente