Does anybody know if there is a way to specify groups of mutually exclusive
options using argparse module?

Currently argpase allows to specify mutually exclusive options in the
following way
(taken from
https://docs.python.org/release/3.4.0/library/argparse.html#argparse.ArgumentParser.add_mutually_exclusive_group
)

>>> parser = argparse.ArgumentParser(prog='PROG')>>> group = 
>>> parser.add_mutually_exclusive_group()>>> group.add_argument('--foo', 
>>> action='store_true')>>> group.add_argument('--bar', 
>>> action='store_false')>>> parser.parse_args(['--foo'])Namespace(bar=True, 
>>> foo=True)>>> parser.parse_args(['--bar'])Namespace(bar=False, foo=False)>>> 
>>> parser.parse_args(['--foo', '--bar'])usage: PROG [-h] [--foo | --bar]PROG: 
>>> error: argument --bar: not allowed with argument --foo

What I need is a way to specify groups of mutually exclusive options.  In
other words

>>> parser = argparse.ArgumentParser(prog='PROG')>>> group1 = 
>>> parser.add_argument_group()>>> group2 = parser.add_argument_group()>>> 
>>> group1.add_argument('--foo', action='store_true')>>> 
>>> group1.add_argument('--bar1', action='store_false')>>> 
>>> group2.add_argument('--foo2', action = 'store_true')
>>> group2.add_argument('--bar2', action = 'store_false')
>>> mutually_exclusive_group = parser.add_mutually_exclusive_argument_group()
>>> mutually_exclusive_group.add_group(group1)
>>> mutually_exclusive_group.add_group(group2)>>> parser.parse_args(['--foo1', 
>>> '--bar1', '--bar2'])usage: PROG [-h] [--foo1, --bar1] | [--foo2, 
>>> --bar2]PROG: error: argument --foo1 or bar1 not allowed with argument 
>>> --foo2 or bar2
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to