[New-bugs-announce] [issue16360] argparse: comma in metavar causes assertion failure when formatting long usage message
Ben Gamari
report at bugs.python.org
Mon Oct 29 17:49:08 CET 2012
New submission from Ben Gamari:
argparse suffers from a failing assertion when formatting a long usage message with an option whose metavar contains a comma. This can be seen in the attached testcase, which fails with,
Traceback (most recent call last):
File "/home/ben/hi.py", line 24, in <module>
args = parser.parse_args()
File "/usr/lib/python2.7/argparse.py", line 1688, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "/usr/lib/python2.7/argparse.py", line 1720, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "/usr/lib/python2.7/argparse.py", line 1937, in _parse_known_args
self.error(_('too few arguments'))
File "/usr/lib/python2.7/argparse.py", line 2360, in error
self.print_usage(_sys.stderr)
File "/usr/lib/python2.7/argparse.py", line 2322, in print_usage
self._print_message(self.format_usage(), file)
File "/usr/lib/python2.7/argparse.py", line 2278, in format_usage
return formatter.format_help()
File "/usr/lib/python2.7/argparse.py", line 279, in format_help
help = self._root_section.format_help()
File "/usr/lib/python2.7/argparse.py", line 209, in format_help
func(*args)
File "/usr/lib/python2.7/argparse.py", line 330, in _format_usage
assert ' '.join(opt_parts) == opt_usage
AssertionError
This failure is apparently due to a regular expression used to wrap the usage message. The solution to this is unclear, but it seems to me using a regular expression here is a hack at best.
----------
components: Library (Lib)
files: hi.py
messages: 174130
nosy: bgamari
priority: normal
severity: normal
status: open
title: argparse: comma in metavar causes assertion failure when formatting long usage message
type: crash
versions: Python 2.7
Added file: http://bugs.python.org/file27778/hi.py
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue16360>
_______________________________________
More information about the New-bugs-announce
mailing list