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