bpo-37034: Display argument name on errors with keyword arguments with Argument Clinic. (GH-13593)

This commit is contained in:
Rémi Lapeyre 2019-08-29 16:49:08 +02:00 committed by Serhiy Storchaka
parent 59725f3bad
commit 4901fe274b
62 changed files with 623 additions and 553 deletions

View file

@ -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 *