From 4901fe274bc82b95dc89bcb3de8802a3dfedab32 Mon Sep 17 00:00:00 2001 From: Rémi Lapeyre Date: Thu, 29 Aug 2019 16:49:08 +0200 Subject: bpo-37034: Display argument name on errors with keyword arguments with Argument Clinic. (GH-13593) --- Python/getargs.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'Python/getargs.c') diff --git a/Python/getargs.c b/Python/getargs.c index fe6474c1811..02a0366ece4 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -610,24 +610,18 @@ convertitem(PyObject *arg, const char **p_format, va_list *p_va, int flags, -/* Format an error message generated by convertsimple(). */ +/* Format an error message generated by convertsimple(). + displayname must be UTF-8 encoded. +*/ void -_PyArg_BadArgument(const char *fname, int iarg, +_PyArg_BadArgument(const char *fname, const char *displayname, const char *expected, PyObject *arg) { - if (iarg) { - PyErr_Format(PyExc_TypeError, - "%.200s() argument %d must be %.50s, not %.50s", - fname, iarg, expected, - arg == Py_None ? "None" : arg->ob_type->tp_name); - } - else { - PyErr_Format(PyExc_TypeError, - "%.200s() argument must be %.50s, not %.50s", - fname, expected, - arg == Py_None ? "None" : arg->ob_type->tp_name); - } + PyErr_Format(PyExc_TypeError, + "%.200s() %.200s must be %.50s, not %.50s", + fname, displayname, expected, + arg == Py_None ? "None" : arg->ob_type->tp_name); } static const char * -- cgit v1.2.3