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

Reply via email to