argparse feature request
ndbecker2 at gmail.com
Fri Nov 22 19:15:34 CET 2013
Robert Kern wrote:
> On 2013-11-22 16:52, Neal Becker wrote:
>> Robert Kern wrote:
>>> On 2013-11-22 14:56, Neal Becker wrote:
>>>> I use arparse all the time and find it serves my needs well. One thing I'd
>>>> to see. In the help message, I'd like to automatically add the default
>>>> What I'd like to see is:
>>>> --size SIZE  <<< the default value is displayed
>>> Use formatter_class=argparse.ArgumentDefaultsHelpFormatter
>> Thanks! Almost perfect. Problem is, I don't usually bother to add
>> me' options. It seems that ArgumentDefaultsHelpFormatter doesn't do anything
>> unless help='blah' option is used. Not sure what to do about that. Since
>> python test_freq3.py -h
>> produces useful messages without my adding help=... everywhere, it'd be nice
>> if ArgumentDefaultsHelpFormatter would work here.
> Patches are welcome, I am sure. Implement a HelpFormatter that does what you
> want. _format_action() is where the relevant logic is. Try something like
> this, and modify to suit.
> class BeckerDefaultFormatter(argparse.ArgumentDefaultsHelpFormatter):
> def _format_action(self, action):
> monkeypatched = False
> if action.default is not None and action.help is None:
> # Trick the default _format_action() method into writing out
> # the defaults.
> action.help = ' '
> monkeypatched = True
> formatted = super(BeckerDefaultFormatter,
> self)._format_action(action) if monkeypatched:
> action.help = None
> return formatted
Thanks! Seems to work great. It gave reasonable output for both case where I
and also without.
I have no idea how that above code works, but I guess as long as it works...
More information about the Python-list