paul j3 added the comment:
The attached file has a 'parse_intermixed_args()' that has the same API as
'parse_known_args()'.
It follows the two parse step model
args, remaining_args = optionals.parse_known_args()
args, extras = positionals.parse_known_args(remaining_args, args)
except that the 'optionals parser' is self with the positional arguments
'deactivated' by setting their nargs to 0. Similarly the 'positionals parser'
is self with the optional arguments set to 'required=false'.
Here it is in a standalone test module illustrating its functionality and
limitations. I could provide a patch, but this form might easier to test in
your own code.
When used to run test_argparse.py, it had problems in the cases where the
distinction between positionals and optionals is blurred.
For example, PARSER and REMAINDER are supposed to grab everything that follows
regardless of what it looks like. I choose to fall back on a single
'parse_know_args' call. Raising an error would the alternative.
Similarly, a mutually exclusive group that includes a positional is difficult
to handle. Again I fall back on the single step.
So the two issues to be discussed are:
- does it provide the desired freedom to mix optionals and positionals?
- in the difficult cases, should it punt, or raise an error?
----------
Added file: http://bugs.python.org/file29982/test_intermixed.py
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue14191>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com