argparse feature request

Neal Becker ndbecker2 at gmail.com
Fri Nov 22 17:52:20 CET 2013


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.
>>
>> For example, here's one of my programs:
>>
>>   python3 test_freq3.py --help
>> usage: test_freq3.py [-h] [--size SIZE] [--esnodB ESNODB] [--tau TAU]
>> [--trials TRIALS]
>>                       [--training TRAINING] [--sps SPS] [--si SI] [--alpha
>>                       [ALPHA] --range RANGE] [--dfunc {gradient,delay}]
>>                       [--mod
>> {gaussian,qpsk,8psk,16apsk,32apsk,32dlr,64apsk,256apsk}]
>>                       [--sym-freq-err SYM_FREQ_ERR] [--calibrate [CALIBRATE]]
>>
>> optional arguments:
>>    -h, --help            show this help message and exit
>>    --size SIZE
>>    --esnodB ESNODB, -e ESNODB
>>    --tau TAU, -t TAU
>>    --trials TRIALS
>>    --training TRAINING
>>    --sps SPS
>>    --si SI
>>    --alpha ALPHA
>>    --range RANGE
>>    --dfunc {gradient,delay}
>>    --mod {gaussian,qpsk,8psk,16apsk,32apsk,32dlr,64apsk,256apsk}
>>    --sym-freq-err SYM_FREQ_ERR
>>    --calibrate [CALIBRATE], --with-calibrate [CALIBRATE], --enable-calibrate
>> [CALIBRATE], --no-calibrate [CALIBRATE], --without-calibrate [CALIBRATE], --
>> disable-calibrate [CALIBRATE]
>>
>> 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
> 
> E.g.
> 
> [git/mpstack]$ cat print_stacks.py
> ...
> def main():
>      import argparse
>      parser = argparse.ArgumentParser(
>          formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>      parser.add_argument('-p', '--percent', action='store_true', help='Show
> percentages.')
>      parser.add_argument('file', help='The sample file.')
> ...
> 
> [git/mpstack]$ python print_stacks.py -h
> usage: print_stacks.py [-h] [-p] file
> 
> positional arguments:
>    file           The sample file.
> 
> optional arguments:
>    -h, --help     show this help message and exit
>    -p, --percent  Show percentages. (default: False)
> 

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.




More information about the Python-list mailing list