summaryrefslogtreecommitdiff
path: root/Objects/complexobject.c
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-11-07 19:18:34 +0200
committerEzio Melotti <ezio.melotti@gmail.com>2013-11-07 19:18:34 +0200
commit64d9c136cc42828c21bb728ab158e9ec6b3290aa (patch)
tree9e7e2ae20b1156887fb2cd56c80b25943084a57b /Objects/complexobject.c
parentc54a1e5d17f9a8a369b0b0af7d6808473355671c (diff)
downloadcpython-64d9c136cc42828c21bb728ab158e9ec6b3290aa.tar.gz
#17080: improve error message of float/complex when the wrong type is passed.
Diffstat (limited to 'Objects/complexobject.c')
-rw-r--r--Objects/complexobject.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index 64e7b44577..60a388fa24 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -773,8 +773,9 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v)
goto error;
}
else if (PyObject_AsCharBuffer(v, &s, &len)) {
- PyErr_SetString(PyExc_TypeError,
- "complex() argument must be a string or a number");
+ PyErr_Format(PyExc_TypeError,
+ "complex() argument must be a string or a number, not '%.200s'",
+ Py_TYPE(v)->tp_name);
return NULL;
}
@@ -953,8 +954,9 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
nbi = i->ob_type->tp_as_number;
if (nbr == NULL || nbr->nb_float == NULL ||
((i != NULL) && (nbi == NULL || nbi->nb_float == NULL))) {
- PyErr_SetString(PyExc_TypeError,
- "complex() argument must be a string or a number");
+ PyErr_Format(PyExc_TypeError,
+ "complex() argument must be a string or a number, not '%.200s'",
+ Py_TYPE(r)->tp_name);
if (own_r) {
Py_DECREF(r);
}