[issue24223] argparse parsing (mingling --option and optional positional argument)
Martin Panter
report at bugs.python.org
Mon May 18 05:29:16 CEST 2015
Martin Panter added the comment:
I suggest this is a duplicate of Issue 15112. The same problem also happens with nargs="*", and that issue apparently has a patch to handle both cases.
For the record, this is the resulting error, and a demo that it works if the option comes before the positional arguments:
>>> print("test 2:", ap.parse_args(["abc", "--option", "mmm"]))
usage: [-h] [--option] arg_1 [arg_2]
: error: unrecognized arguments: mmm
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/proj/python/cpython/Lib/argparse.py", line 1729, in parse_args
self.error(msg % ' '.join(argv))
File "/home/proj/python/cpython/Lib/argparse.py", line 2385, in error
self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
File "/home/proj/python/cpython/Lib/argparse.py", line 2372, in exit
_sys.exit(status)
File "/home/pythonstartup.py", line 345, in exit
raise SystemExit(code)
__main__.SystemExit: 2
>>> ap.parse_args(["--option", "abc", "mmm"])
Namespace(arg_1='abc', arg_2='mmm', option=True)
----------
nosy: +vadmium
resolution: -> duplicate
stage: -> resolved
status: open -> closed
superseder: -> argparse: nargs='*' positional argument doesn't accept any items if preceded by an option and another positional
title: argparse parsing bug -> argparse parsing (mingling --option and optional positional argument)
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue24223>
_______________________________________
More information about the Python-bugs-list
mailing list