mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue 4910, patch 2 of (probably) 3: pave the way for renaming of
nb_long: remove last remaining use of nb_long (in the struct module) from the core, set nb_long slots on all builtin and extension types to 0, and remove uses of __long__ in test_complex and test_binop. Reviewed by Benjamin Peterson.
This commit is contained in:
parent
29500f64b6
commit
cce2f217d4
8 changed files with 8 additions and 25 deletions
|
@ -77,12 +77,6 @@ class Rat(object):
|
||||||
repr(self))
|
repr(self))
|
||||||
raise ValueError("can't convert %s to int" % repr(self))
|
raise ValueError("can't convert %s to int" % repr(self))
|
||||||
|
|
||||||
def __long__(self):
|
|
||||||
"""Convert a Rat to an long; self.den must be 1."""
|
|
||||||
if self.__den == 1:
|
|
||||||
return int(self.__num)
|
|
||||||
raise ValueError("can't convert %s to long" % repr(self))
|
|
||||||
|
|
||||||
def __add__(self, other):
|
def __add__(self, other):
|
||||||
"""Add two Rats, or a Rat and a number."""
|
"""Add two Rats, or a Rat and a number."""
|
||||||
if isint(other):
|
if isint(other):
|
||||||
|
|
|
@ -182,11 +182,9 @@ class CMathTests(unittest.TestCase):
|
||||||
pass
|
pass
|
||||||
class MyInt(object):
|
class MyInt(object):
|
||||||
def __int__(self): return 2
|
def __int__(self): return 2
|
||||||
def __long__(self): return 2
|
|
||||||
def __index__(self): return 2
|
def __index__(self): return 2
|
||||||
class MyIntOS:
|
class MyIntOS:
|
||||||
def __int__(self): return 2
|
def __int__(self): return 2
|
||||||
def __long__(self): return 2
|
|
||||||
def __index__(self): return 2
|
def __index__(self): return 2
|
||||||
|
|
||||||
# other possible combinations of __float__ and __complex__
|
# other possible combinations of __float__ and __complex__
|
||||||
|
@ -219,7 +217,7 @@ class CMathTests(unittest.TestCase):
|
||||||
self.assertEqual(f(JustFloatOS()), f(flt_arg))
|
self.assertEqual(f(JustFloatOS()), f(flt_arg))
|
||||||
# TypeError should be raised for classes not providing
|
# TypeError should be raised for classes not providing
|
||||||
# either __complex__ or __float__, even if they provide
|
# either __complex__ or __float__, even if they provide
|
||||||
# __int__, __long__ or __index__. An old-style class
|
# __int__ or __index__. An old-style class
|
||||||
# currently raises AttributeError instead of a TypeError;
|
# currently raises AttributeError instead of a TypeError;
|
||||||
# this could be considered a bug.
|
# this could be considered a bug.
|
||||||
self.assertRaises(TypeError, f, NeitherComplexNorFloat())
|
self.assertRaises(TypeError, f, NeitherComplexNorFloat())
|
||||||
|
|
|
@ -127,8 +127,8 @@ get_pylong(PyObject *v)
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
m = Py_TYPE(v)->tp_as_number;
|
m = Py_TYPE(v)->tp_as_number;
|
||||||
if (m != NULL && m->nb_long != NULL) {
|
if (m != NULL && m->nb_int != NULL) {
|
||||||
v = m->nb_long(v);
|
v = m->nb_int(v);
|
||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (PyLong_Check(v))
|
if (PyLong_Check(v))
|
||||||
|
|
|
@ -660,14 +660,6 @@ complex_int(PyObject *v)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
|
||||||
complex_long(PyObject *v)
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError,
|
|
||||||
"can't convert complex to long; use long(abs(z))");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
complex_float(PyObject *v)
|
complex_float(PyObject *v)
|
||||||
{
|
{
|
||||||
|
@ -1068,7 +1060,7 @@ static PyNumberMethods complex_as_number = {
|
||||||
0, /* nb_xor */
|
0, /* nb_xor */
|
||||||
0, /* nb_or */
|
0, /* nb_or */
|
||||||
complex_int, /* nb_int */
|
complex_int, /* nb_int */
|
||||||
complex_long, /* nb_long */
|
0, /* nb_long */
|
||||||
complex_float, /* nb_float */
|
complex_float, /* nb_float */
|
||||||
0, /* nb_inplace_add */
|
0, /* nb_inplace_add */
|
||||||
0, /* nb_inplace_subtract */
|
0, /* nb_inplace_subtract */
|
||||||
|
|
|
@ -1798,7 +1798,7 @@ static PyNumberMethods float_as_number = {
|
||||||
0, /*nb_xor*/
|
0, /*nb_xor*/
|
||||||
0, /*nb_or*/
|
0, /*nb_or*/
|
||||||
float_trunc, /*nb_int*/
|
float_trunc, /*nb_int*/
|
||||||
float_trunc, /*nb_long*/
|
0, /*nb_long*/
|
||||||
float_float, /*nb_float*/
|
float_float, /*nb_float*/
|
||||||
0, /* nb_inplace_add */
|
0, /* nb_inplace_add */
|
||||||
0, /* nb_inplace_subtract */
|
0, /* nb_inplace_subtract */
|
||||||
|
|
|
@ -3830,7 +3830,7 @@ static PyNumberMethods long_as_number = {
|
||||||
long_xor, /*nb_xor*/
|
long_xor, /*nb_xor*/
|
||||||
long_or, /*nb_or*/
|
long_or, /*nb_or*/
|
||||||
long_long, /*nb_int*/
|
long_long, /*nb_int*/
|
||||||
long_long, /*nb_long*/
|
0, /*nb_long*/
|
||||||
long_float, /*nb_float*/
|
long_float, /*nb_float*/
|
||||||
0, /* nb_inplace_add */
|
0, /* nb_inplace_add */
|
||||||
0, /* nb_inplace_subtract */
|
0, /* nb_inplace_subtract */
|
||||||
|
|
|
@ -489,7 +489,6 @@ WRAP_BINARY(proxy_and, PyNumber_And)
|
||||||
WRAP_BINARY(proxy_xor, PyNumber_Xor)
|
WRAP_BINARY(proxy_xor, PyNumber_Xor)
|
||||||
WRAP_BINARY(proxy_or, PyNumber_Or)
|
WRAP_BINARY(proxy_or, PyNumber_Or)
|
||||||
WRAP_UNARY(proxy_int, PyNumber_Int)
|
WRAP_UNARY(proxy_int, PyNumber_Int)
|
||||||
WRAP_UNARY(proxy_long, PyNumber_Long)
|
|
||||||
WRAP_UNARY(proxy_float, PyNumber_Float)
|
WRAP_UNARY(proxy_float, PyNumber_Float)
|
||||||
WRAP_BINARY(proxy_iadd, PyNumber_InPlaceAdd)
|
WRAP_BINARY(proxy_iadd, PyNumber_InPlaceAdd)
|
||||||
WRAP_BINARY(proxy_isub, PyNumber_InPlaceSubtract)
|
WRAP_BINARY(proxy_isub, PyNumber_InPlaceSubtract)
|
||||||
|
@ -595,7 +594,7 @@ static PyNumberMethods proxy_as_number = {
|
||||||
proxy_xor, /*nb_xor*/
|
proxy_xor, /*nb_xor*/
|
||||||
proxy_or, /*nb_or*/
|
proxy_or, /*nb_or*/
|
||||||
proxy_int, /*nb_int*/
|
proxy_int, /*nb_int*/
|
||||||
proxy_long, /*nb_long*/
|
0, /*nb_long*/
|
||||||
proxy_float, /*nb_float*/
|
proxy_float, /*nb_float*/
|
||||||
proxy_iadd, /*nb_inplace_add*/
|
proxy_iadd, /*nb_inplace_add*/
|
||||||
proxy_isub, /*nb_inplace_subtract*/
|
proxy_isub, /*nb_inplace_subtract*/
|
||||||
|
|
|
@ -451,7 +451,7 @@ static PyNumberMethods PyHKEY_NumberMethods =
|
||||||
PyHKEY_binaryFailureFunc, /* nb_xor */
|
PyHKEY_binaryFailureFunc, /* nb_xor */
|
||||||
PyHKEY_binaryFailureFunc, /* nb_or */
|
PyHKEY_binaryFailureFunc, /* nb_or */
|
||||||
PyHKEY_intFunc, /* nb_int */
|
PyHKEY_intFunc, /* nb_int */
|
||||||
PyHKEY_unaryFailureFunc, /* nb_long */
|
0, /* nb_long */
|
||||||
PyHKEY_unaryFailureFunc, /* nb_float */
|
PyHKEY_unaryFailureFunc, /* nb_float */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue