Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #60244

Re: argparse feature request

From Robert Kern <robert.kern@gmail.com>
Subject Re: argparse feature request
Date 2013-11-22 17:33 +0000
References <l6nrar$fss$1@ger.gmane.org> <l6nrrv$olk$1@ger.gmane.org> <l6o23q$96u$1@ger.gmane.org>
Newsgroups comp.lang.python
Message-ID <mailman.3049.1385141612.18130.python-list@python.org> (permalink)

Show all headers | View raw


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

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: argparse feature request Robert Kern <robert.kern@gmail.com> - 2013-11-22 17:33 +0000

csiph-web