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):
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__
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())
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))
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 *
complex_float(PyObject *v)
{
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 */
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 */
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 */
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)
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*/
PyHKEY_binaryFailureFunc, /* nb_xor */
PyHKEY_binaryFailureFunc, /* nb_or */
PyHKEY_intFunc, /* nb_int */
- PyHKEY_unaryFailureFunc, /* nb_long */
+ 0, /* nb_long */
PyHKEY_unaryFailureFunc, /* nb_float */
};