argparse feature request
Neal Becker
ndbecker2 at gmail.com
Fri Nov 22 13:15:34 EST 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
>>>> like
>>>> to see. In the help message, I'd like to automatically add the default
>>>> values.
>
>>>> What I'd like to see is:
>>>>
>>>> --size SIZE [2000] <<< the default value is displayed
>>>
>>> Use formatter_class=argparse.ArgumentDefaultsHelpFormatter
>>>
>>>
>>>
http://docs.python.org/2/library/argparse#argparse.ArgumentDefaultsHelpFormatter
>
>> Thanks! Almost perfect. Problem is, I don't usually bother to add
>> help='help
>> 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
include
help=...
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
mailing list