Issue 9653: New default argparse output to be added (original) (raw)

Created on 2010-08-20 21:04 by Tom.Browder, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (8)
msg114457 - (view) Author: Tom Browder (Tom.Browder) Date: 2010-08-20 21:04
When I use the argparse module, and I enter my program name with NO arguments or options, I would like the argparser to output something like: Usage: [options] Use option '-h' for help. I haven't yet found how to do that in the argparse module source code, but I do that now in my programs by adding this code near the beginning of the program: # give rudimentary help if nothing but prog name is entered import os # get program name as it is called pnam = os.path.basename(sys.argv[0]) Use = "Usage: {0} [options]".format(pnam) if len(sys.argv) == 1: print(Use) print("Use option '-h' for help.") sys.exit()
msg114706 - (view) Author: Steven Bethard (bethard) * (Python committer) Date: 2010-08-22 21:01
A simpler approach might be to do this before your call to parse_args: if len(sys.argv[0]) == 1: parser.print_help() Does that solve your problem?
msg114708 - (view) Author: Tom Browder (Tom.Browder) Date: 2010-08-22 21:42
On Sun, Aug 22, 2010 at 16:01, Steven Bethard <report@bugs.python.org> wrote: > > Steven Bethard <steven.bethard@gmail.com> added the comment: > > A simpler approach might be to do this before your call to parse_args: > > if len(sys.argv[0]) == 1: >    parser.print_help() > > Does that solve your problem? No, Steven, I get no response at all. -Tom
msg114711 - (view) Author: Steven Bethard (bethard) * (Python committer) Date: 2010-08-22 22:06
Sorry, typo. Should have been len(sys.argv) == 1. Full script: import argparse import sys parser = argparse.ArgumentParser() parser.add_argument('--foo') if len(sys.argv) == 1: parser.print_help() else: print(parser.parse_args()) With that script, I see: $ ./python.exe temp.py usage: temp.py [-h] [--foo FOO] optional arguments: -h, --help show this help message and exit --foo FOO
msg114737 - (view) Author: Tom Browder (Tom.Browder) Date: 2010-08-23 11:08
On Sun, Aug 22, 2010 at 17:06, Steven Bethard <report@bugs.python.org> wrote: ... > import argparse > import sys > > parser = argparse.ArgumentParser() > parser.add_argument('--foo') > > if len(sys.argv) == 1: >    parser.print_help() > else: >    print(parser.parse_args()) Of course that works, but I want to be able to customize the parser so it shows something like: Usage: [options] Use option '-h' for help. Two problems for me with current behavior: 1. "usage" and "optional" => not capitalized 2. usage: temp.py [-h] [--foo FOO] => gets very lengthy and mind numbing for programs with lots of options Regards, -Tom
msg114772 - (view) Author: Steven Bethard (bethard) * (Python committer) Date: 2010-08-24 07:56
I see. When there are no arguments you basically want to replace the standard argparse help entirely with your own message, with your own capitalization, etc. What you're doing now looks like a pretty good approach for this, so I guess I'm still not clear what you're asking for. Could you suggest a concrete API for argparse that would make it easier to do what you want to do?
msg114775 - (view) Author: Tom Browder (Tom.Browder) Date: 2010-08-24 11:07
... > I see. When there are no arguments you basically want to replace the standard > argparse help entirely with your own > message, with your own capitalization, etc. > What you're doing now looks like a pretty good approach for this, so > I guess I'm still not clear what you're asking for. Could you suggest a concrete > API for argparse that would make it easier to do what you want to do? I think so, Steven, let me look at it a bit and I'll get back to you. Thanks, -Tom Thomas M. Browder, Jr. Niceville, Florida USA
msg132329 - (view) Author: Steven Bethard (bethard) * (Python committer) Date: 2011-03-27 14:23
I'm moving this over to Issue 11695, which proposes support for a usage/help message template.
History
Date User Action Args
2022-04-11 14:57:05 admin set github: 53862
2011-03-27 14:23:07 bethard set status: open -> closedresolution: duplicatemessages: + superseder: Improve argparse usage/help customizationstage: resolved
2010-08-24 11:07:07 Tom.Browder set messages: +
2010-08-24 07:56:02 bethard set messages: +
2010-08-23 11:08:49 Tom.Browder set messages: +
2010-08-22 22:06:38 bethard set messages: +
2010-08-22 21:42:13 Tom.Browder set messages: +
2010-08-22 21:01:10 bethard set messages: +
2010-08-20 21:21:52 benjamin.peterson set assignee: bethardnosy: + bethard
2010-08-20 21:04:47 Tom.Browder create