[issue9694] argparse required arguments displayed under optional arguments

2014-01-21 Thread Martin d'Anjou

Martin d'Anjou added the comment:

How about calling required arguments required arguments?

required arguments:
  --reqarg REQARG, -r REQARG
This is required
optional arguments:
  -h, --helpshow this help message and exit
  --optarg OPTARG, -o OPTARG
This is optional

Clear and unambiguous. With this approach the user does not have to bloat the 
help to state This is required.

We're having the same discussion over at github regarding argparse4j:
https://github.com/tatsuhiro-t/argparse4j/issues/26#issuecomment-32894297

--
nosy: +Martin.d'Anjou

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue9694
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue20333] argparse subparser usage message hides main parser usage

2014-01-21 Thread Martin d'Anjou

New submission from Martin d'Anjou:

Consider the following code:

#!/usr/bin/env python3
import argparse

# create the top-level parser
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('--file', help='A filename', required=True)
subparsers = parser.add_subparsers(help='sub-command help')

# create the parser for the a command
parser_a = subparsers.add_parser('a', help='a help')
parser_a.add_argument('bar', type=int, help='bar help')

# create the parser for the b command
parser_b = subparsers.add_parser('b', help='b help')
parser_b.add_argument('--baz', choices='XYZ', help='baz help')

The help for subparser a is obtained with: parser.parse_args([a,--help])

usage: PROG a [-h] bar

positional arguments:
  bar bar help

optional arguments:
  -h, --help  show this help message and exit

When the user follows the help, the user gets it wrong:
parser.parse_args([a,10])

usage: PROG [-h] --file FILE {a,b} ...
PROG: error: argument --file is required

The correct way to use the subparser is:
parser.parse_args([--file,file,a,10])

But the problem is that the original help message is not telling the user that 
this is the correct way. When asking for the a subparser help, the usage 
message should also reveal the main parser arguments. Continuing with the 
example, something like this should be appropriate:

usage: PROG [-h] --file FILE a [-h] bar

This is how the argparse Java port works.

--
components: Library (Lib)
messages: 208670
nosy: Martin.d'Anjou
priority: normal
severity: normal
status: open
title: argparse subparser usage message hides main parser usage
type: enhancement
versions: Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20333
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com