paul j3 added the comment:
http://stackoverflow.com/questions/11455218
python, argparse: enable input parameter when another one has been specified
$ python myScript.py --parameter1 value1
$ python myScript.py --parameter1 value1 --parameter2 value2
$ python myScript.py --parameter2 value2 # error
This is an example where a 'mutually inclusive group' wouldn't quite do the
job.
The proposed answers mostly use a custom Action. I'd lean toward an
after-the-parse test of the namespace.
With the patch I proposed this could be implemented with:
a1 = parser.add_argument("--parameter1")
a2 = parser.add_argument("--parameter2")
def test(parser, seen_actions, *args):
if a2 in seen_actions and a1 not in seen_actions:
parser.error('parameter2 requires parameter1')
parser.register('cross_tests', 'test', test)
One poster on that thread claimed that the use of 'a1 = parser.add_argument...'
is using an undocumented feature. The fact that `add_argument` returns an
`action` object, should be illustrated in the documentation, and may be
explicitly noted. I'll have to review the documentation to see if this is the
case.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue11588>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com