Hi Lisandro,
I can't currently comment on the change itself, but I would prefer
duplicating the relevant part of the test case instead of replacing it, so
that we test both types of classes.
Stefan
Lisandro Dalcin wrote:
> I do not have the time do dive deep enough to figure out the root of
> this difference, but here you have a patch that modifies a testcase to
> exercise the problem, and a quick fix for __Pyx_PyNumber_Int fixing
> the issue.
>
> If there are no objections, I'll push the fix to cython-devel... As
> this is related to rather old Python versions, I'm being a bit lazy as
> to re-openi #255, I would just push the fix :-)
>
>
> diff -r b550ee890c72 Cython/Compiler/PyrexTypes.py
> --- a/Cython/Compiler/PyrexTypes.py Tue Apr 21 19:43:22 2009 -0700
> +++ b/Cython/Compiler/PyrexTypes.py Wed Apr 22 19:52:13 2009 -0300
> @@ -1524,7 +1524,13 @@
> return Py_INCREF(x), x;
> m = Py_TYPE(x)->tp_as_number;
> #if PY_VERSION_HEX < 0x03000000
> +#if PY_VERSION_HEX < 0x02050000
> + if (m && m->nb_long &&
> + (!PyInstance_Check(x) ||
> + PyObject_HasAttrString(x, (char*)"__long__"))) {
> +#else
> if (m && m->nb_long) {
> +#endif
> name = "long";
> res = PyNumber_Long(x);
> }
> diff -r b550ee890c72 tests/run/c_int_types_T255.pyx
> --- a/tests/run/c_int_types_T255.pyx Tue Apr 21 19:43:22 2009 -0700
> +++ b/tests/run/c_int_types_T255.pyx Wed Apr 22 19:52:13 2009 -0300
> @@ -655,7 +655,7 @@
> # -------------------------------------------------------------------
> import sys
>
> -class MyInt(object):
> +class MyInt:
> def __init__(self, value):
> self.value = value
> def __int__(self):
>
>
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev