paul j3 added the comment:

This is a refinement of the patch with Message188609.

In parse_known_intermixed_args, the temporary capture of formatted usage has 
been put in a try/finally structure.

Positionals are now 'deactivated' with

    action.nargs = SUPPRESS
    action.default = SUPPRESS

To use this, a 'nargs==SUPPRESS' case has been added to the relevant methods.  
In _get_args_pattern() it acts just like 'nargs=0'.  In '_get_values()' it 
returns 'value=SUPPRESS'.  The net effect is that, in take_action(), 'action' 
is not invoked, and that positional is not added to the namespace.

Previously I used nargs=0, which put a [] value in the namespace, which then 
had to be deleted.

I have not added anything about this SUPPRESS option to the documentation 
(PARSER isn't there either).

When the parser uses incompatible features (e.g. REMAINDER), this now raises a 
TypeError.  The effect is similar to giving add_argument incompatible 
definitions.  The 'fallback' that I used earlier can be implemented with a 
simple 'try/except TypeError'.  Other parsing errors go through the usual 
ArgumentParser.error() method.

test_argparse.py has been changed to handle this TypeError.

----------
Added file: http://bugs.python.org/file30422/intermixed.patch

_______________________________________
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