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 yy--foo x --bar yestán bien - hacer a lo sumo uno de "foo, bar" obligatorio:
--foo xo--bar yestán bien,--foo x --bar yno 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