From cce2f217d403dff7344fcc1c381e36dfd075a961 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Thu, 15 Jan 2009 19:32:23 +0000 Subject: 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. --- Lib/test/test_binop.py | 6 ------ Lib/test/test_cmath.py | 4 +--- Modules/_struct.c | 4 ++-- Objects/complexobject.c | 10 +--------- Objects/floatobject.c | 2 +- Objects/longobject.c | 2 +- Objects/weakrefobject.c | 3 +-- PC/winreg.c | 2 +- 8 files changed, 8 insertions(+), 25 deletions(-) diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py index f60fe3f..0dc18dd 100644 --- a/Lib/test/test_binop.py +++ b/Lib/test/test_binop.py @@ -77,12 +77,6 @@ class Rat(object): 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): """Add two Rats, or a Rat and a number.""" if isint(other): diff --git a/Lib/test/test_cmath.py b/Lib/test/test_cmath.py index 3c34fec..17cb566 100755 --- a/Lib/test/test_cmath.py +++ b/Lib/test/test_cmath.py @@ -182,11 +182,9 @@ class CMathTests(unittest.TestCase): pass class MyInt(object): def __int__(self): return 2 - def __long__(self): return 2 def __index__(self): return 2 class MyIntOS: def __int__(self): return 2 - def __long__(self): return 2 def __index__(self): return 2 # other possible combinations of __float__ and __complex__ @@ -219,7 +217,7 @@ class CMathTests(unittest.TestCase): self.assertEqual(f(JustFloatOS()), f(flt_arg)) # TypeError should be raised for classes not providing # 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; # this could be considered a bug. self.assertRaises(TypeError, f, NeitherComplexNorFloat()) diff --git a/Modules/_struct.c b/Modules/_struct.c index a9b1ffa..a99e7f2 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -127,8 +127,8 @@ get_pylong(PyObject *v) return v; } m = Py_TYPE(v)->tp_as_number; - if (m != NULL && m->nb_long != NULL) { - v = m->nb_long(v); + if (m != NULL && m->nb_int != NULL) { + v = m->nb_int(v); if (v == NULL) return NULL; if (PyLong_Check(v)) diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 75283a0..a7fd7dc 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -661,14 +661,6 @@ complex_int(PyObject *v) } static PyObject * -complex_long(PyObject *v) -{ - PyErr_SetString(PyExc_TypeError, - "can't convert complex to long; use long(abs(z))"); - return NULL; -} - -static PyObject * complex_float(PyObject *v) { PyErr_SetString(PyExc_TypeError, @@ -1068,7 +1060,7 @@ static PyNumberMethods complex_as_number = { 0, /* nb_xor */ 0, /* nb_or */ complex_int, /* nb_int */ - complex_long, /* nb_long */ + 0, /* nb_long */ complex_float, /* nb_float */ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 20c1eef..7292ca5 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -1798,7 +1798,7 @@ static PyNumberMethods float_as_number = { 0, /*nb_xor*/ 0, /*nb_or*/ float_trunc, /*nb_int*/ - float_trunc, /*nb_long*/ + 0, /*nb_long*/ float_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ diff --git a/Objects/longobject.c b/Objects/longobject.c index 9993d10..259f7c5 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -3830,7 +3830,7 @@ static PyNumberMethods long_as_number = { long_xor, /*nb_xor*/ long_or, /*nb_or*/ long_long, /*nb_int*/ - long_long, /*nb_long*/ + 0, /*nb_long*/ long_float, /*nb_float*/ 0, /* nb_inplace_add */ 0, /* nb_inplace_subtract */ diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index faa0f86..538b21c 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -489,7 +489,6 @@ WRAP_BINARY(proxy_and, PyNumber_And) WRAP_BINARY(proxy_xor, PyNumber_Xor) WRAP_BINARY(proxy_or, PyNumber_Or) WRAP_UNARY(proxy_int, PyNumber_Int) -WRAP_UNARY(proxy_long, PyNumber_Long) WRAP_UNARY(proxy_float, PyNumber_Float) WRAP_BINARY(proxy_iadd, PyNumber_InPlaceAdd) WRAP_BINARY(proxy_isub, PyNumber_InPlaceSubtract) @@ -595,7 +594,7 @@ static PyNumberMethods proxy_as_number = { proxy_xor, /*nb_xor*/ proxy_or, /*nb_or*/ proxy_int, /*nb_int*/ - proxy_long, /*nb_long*/ + 0, /*nb_long*/ proxy_float, /*nb_float*/ proxy_iadd, /*nb_inplace_add*/ proxy_isub, /*nb_inplace_subtract*/ diff --git a/PC/winreg.c b/PC/winreg.c index 7d1d816..7316fcd 100644 --- a/PC/winreg.c +++ b/PC/winreg.c @@ -451,7 +451,7 @@ static PyNumberMethods PyHKEY_NumberMethods = PyHKEY_binaryFailureFunc, /* nb_xor */ PyHKEY_binaryFailureFunc, /* nb_or */ PyHKEY_intFunc, /* nb_int */ - PyHKEY_unaryFailureFunc, /* nb_long */ + 0, /* nb_long */ PyHKEY_unaryFailureFunc, /* nb_float */ }; -- cgit v0.12