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
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
--
https://mail.python.org/mailman/listinfo/python-list