From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 20 Nov 2019 13:48:20 +0000 (-0800) Subject: bpo-38821: Fix crash in argparse when using gettext (GH-17192) X-Git-Tag: v3.7.6rc1~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ecb2afc1bc1c2f3f9f99b09dd866100c3c7dcab7;p=thirdparty%2FPython%2Fcpython.git bpo-38821: Fix crash in argparse when using gettext (GH-17192) (cherry picked from commit be5c79e0338005d675a64ba6e5b137e850d556d1) Co-authored-by: Federico Bond --- diff --git a/Lib/argparse.py b/Lib/argparse.py index 24af355b7441..ac424f491451 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -2080,10 +2080,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): OPTIONAL: _('expected at most one argument'), ONE_OR_MORE: _('expected at least one argument'), } - default = ngettext('expected %s argument', + msg = nargs_errors.get(action.nargs) + if msg is None: + msg = ngettext('expected %s argument', 'expected %s arguments', action.nargs) % action.nargs - msg = nargs_errors.get(action.nargs, default) raise ArgumentError(action, msg) # return the number of arguments matched diff --git a/Misc/NEWS.d/next/Library/2019-11-16-23-26-25.bpo-38821.-albNN.rst b/Misc/NEWS.d/next/Library/2019-11-16-23-26-25.bpo-38821.-albNN.rst new file mode 100644 index 000000000000..2e7a22f661ac --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-11-16-23-26-25.bpo-38821.-albNN.rst @@ -0,0 +1 @@ +Fix unhandled exceptions in :mod:`argparse` when internationalizing error messages for arguments with ``nargs`` set to special (non-integer) values. Patch by Federico Bond.