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. -- https://mail.python.org/mailman/listinfo/python-list