New submission from Eric Fahlgren <ericfahlg...@gmail.com>:
When argparse is configured with an option that takes arguments, then the script is invoked with the switch but no arguments, a nonsensical exception is raised during gettext processing. In the 3.7.1 source, the error is at line 2077 of argparse.py, where 'action.nargs' is not an integer as expected by 'ngettext', but one of None, '*' or '?': default = ngettext('expected %s argument', 'expected %s arguments', action.nargs) % action.nargs msg = nargs_errors.get(action.nargs, default) Fix should be pretty trivial, swap the two lines and if 'get' produces None, only then compute the default. File "C:\Program Files\Python37\lib\argparse.py", line 1749, in parse_args args, argv = self.parse_known_args(args, namespace) File "C:\Program Files\Python37\lib\argparse.py", line 1781, in parse_known_args namespace, args = self._parse_known_args(args, namespace) File "C:\Program Files\Python37\lib\argparse.py", line 1987, in _parse_known_args start_index = consume_optional(start_index) File "C:\Program Files\Python37\lib\argparse.py", line 1917, in consume_optional arg_count = match_argument(action, selected_patterns) File "C:\Program Files\Python37\lib\argparse.py", line 2079, in _match_argument action.nargs) % action.nargs File "C:\Program Files\Python37\lib\gettext.py", line 631, in ngettext return dngettext(_current_domain, msgid1, msgid2, n) File "C:\Program Files\Python37\lib\gettext.py", line 610, in dngettext return t.ngettext(msgid1, msgid2, n) File "C:\Program Files\Python37\lib\gettext.py", line 462, in ngettext tmsg = self._catalog[(msgid1, self.plural(n))] File "<string>", line 4, in func File "C:\Program Files\Python37\lib\gettext.py", line 168, in _as_int (n.__class__.__name__,)) from None TypeError: Plural value must be an integer, got NoneType ---------- components: Library (Lib) messages: 334065 nosy: eric.fahlgren priority: normal severity: normal status: open title: argparse crashes in gettext when processing missing arguments versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35785> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com