[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2021-09-07 Thread Irit Katriel


Irit Katriel  added the comment:

Changing type since crash typically means segfault and not an exception.

--
nosy: +iritkatriel
type: crash -> behavior

___
Python tracker 

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



[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2020-12-02 Thread paul j3


paul j3  added the comment:

I'll reopen it - your patch, while not a complete resolution, does take care of 
the immediate error.

--
resolution: duplicate -> 
status: closed -> open

___
Python tracker 

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



[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2020-12-02 Thread paul j3


paul j3  added the comment:

Duplicate of

https://bugs.python.org/issue14074

argparse allows nargs>1 for positional arguments but doesn't allow metavar to 
be a tuple

--
resolution:  -> duplicate
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

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



[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2020-12-02 Thread Karthikeyan Singaravelan


Change by Karthikeyan Singaravelan :


--
nosy: +paul.j3, rhettinger

___
Python tracker 

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



[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2020-12-02 Thread Mikhail Khvoinitsky


Change by Mikhail Khvoinitsky :


--
keywords: +patch
pull_requests: +22485
stage:  -> patch review
pull_request: https://github.com/python/cpython/pull/23617

___
Python tracker 

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



[issue42547] argparse: add_argument(... nargs='+', metavar=) does not work with positional arguments

2020-12-02 Thread Mikhail Khvoinitsky


New submission from Mikhail Khvoinitsky :

Example which works:

parser.add_argument('--test', nargs='+', metavar=('TEST', 'TEST2'))



Example which doesn't work:

parser.add_argument('test', nargs='+', metavar=('TEST', 'TEST2'))

it raises:

Traceback (most recent call last):
  File 
args = parser.parse_args()
  File "/usr/lib/python3.8/argparse.py", line 1768, in parse_args
args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib/python3.8/argparse.py", line 1800, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib/python3.8/argparse.py", line 2006, in _parse_known_args
start_index = consume_optional(start_index)
  File "/usr/lib/python3.8/argparse.py", line 1946, in consume_optional
take_action(action, args, option_string)
  File "/usr/lib/python3.8/argparse.py", line 1874, in take_action
action(self, namespace, argument_values, option_string)
  File "/usr/lib/python3.8/argparse.py", line 1044, in __call__
parser.print_help()
  File "/usr/lib/python3.8/argparse.py", line 2494, in print_help
self._print_message(self.format_help(), file)
  File "/usr/lib/python3.8/argparse.py", line 2471, in format_help
formatter.add_arguments(action_group._group_actions)
  File "/usr/lib/python3.8/argparse.py", line 276, in add_arguments
self.add_argument(action)
  File "/usr/lib/python3.8/argparse.py", line 261, in add_argument
invocations = [get_invocation(action)]
  File "/usr/lib/python3.8/argparse.py", line 549, in 
_format_action_invocation
metavar, = self._metavar_formatter(action, default)(1)
ValueError: too many values to unpack (expected 1)


Expected result: help message should look like this:

usage: test_argparse [-h] TEST [TEST2 ...]

positional arguments:
  TEST

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

--
components: Library (Lib)
messages: 382341
nosy: m_khvoinitsky
priority: normal
severity: normal
status: open
title: argparse: add_argument(... nargs='+', metavar=) does not work 
with positional arguments
type: crash
versions: Python 3.10

___
Python tracker 

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