bpo-41974: Remove complex.__float__, complex.__floordiv__, etc (GH-22593)

Remove complex special methods __int__, __float__, __floordiv__,
__mod__, __divmod__, __rfloordiv__, __rmod__ and __rdivmod__
which always raised a TypeError.
This commit is contained in:
Serhiy Storchaka 2020-10-09 14:14:37 +03:00 committed by GitHub
parent 48f305fd12
commit e2ec0b27c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 81 additions and 66 deletions

View file

@ -747,10 +747,10 @@ done:
int
PyNumber_Check(PyObject *o)
{
return o && Py_TYPE(o)->tp_as_number &&
(Py_TYPE(o)->tp_as_number->nb_index ||
Py_TYPE(o)->tp_as_number->nb_int ||
Py_TYPE(o)->tp_as_number->nb_float);
if (o == NULL)
return 0;
PyNumberMethods *nb = Py_TYPE(o)->tp_as_number;
return nb && (nb->nb_index || nb->nb_int || nb->nb_float || PyComplex_Check(o));
}
/* Binary operators */
@ -1461,7 +1461,7 @@ PyNumber_Long(PyObject *o)
}
return type_error("int() argument must be a string, a bytes-like object "
"or a number, not '%.200s'", o);
"or a real number, not '%.200s'", o);
}
PyObject *