argparse feature request

Robert Kern robert.kern at gmail.com
Fri Nov 22 10:05:46 EST 2013


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)

-- 
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




More information about the Python-list mailing list