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 <rep...@bugs.python.org> <http://bugs.python.org/issue16360> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com