yiwangai1983 / argparse

Automatically exported from code.google.com/p/argparse
Other
0 stars 0 forks source link

When -h is used, default values that fail should not matter #83

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Make a script containing this code:

 parser = argparse.ArgumentParser()
 parser.add_argument('-i', '--input-base-directory',
                     type=argparse.FileType('r'),
                     default='/home')
 parser.parse_args()

2. Run the script with '-h'.
3. See it complain that '/home' is a directory

What is the expected output? What do you see instead?
With '-h', we just need to print the help message. We shouldn't fail on a 
default value that's wrong or else the help message will not get printed and 
the user will have no idea what the problem is. This is a valid use case as I 
want to provide a default location, but I can't guarantee that the location 
exists on the user's machine. I end up doing my own checking.

What version of the product are you using? On what operating system?
1.1 on Fedora 15.

Please provide any additional information below.

Original issue reported on code.google.com by joshc...@gmail.com on 25 Oct 2011 at 7:27

GoogleCodeExporter commented 8 years ago
This issue needs to be instead logged at http://bugs.python.org.  Note, 
however, that the failure occurs long before -h is processed.  I suspect, 
actually, thatDoing what you suggest requires a two-pass scan of the arguments, 
first looking for some special one, -h, and then, if not present, scanning it 
"normally".  This doesn't at all fit into the current design of argparse 
unfortunately.  In principal, though, I definitely agree.  Someone needs to 
design the mother of all command-line argument parsers which supports multiple 
passes :)

Original comment by denver.c...@gmail.com on 26 Oct 2011 at 7:48

GoogleCodeExporter commented 8 years ago
Ok, submitted on bugs.python.org:
http://bugs.python.org/issue13271

Original comment by joshc...@gmail.com on 26 Oct 2011 at 9:26