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 <rep...@bugs.python.org>
<http://bugs.python.org/issue14191>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to