On 11 November 2012 13:04, Stefan Behnel <stefan...@behnel.de> wrote: > mark florisson, 11.11.2012 12:26: >> On 11 November 2012 08:12, Stefan Behnel wrote: >>> instead of overriding an existing definition of "PyIndex_Check" like this: >>> >>> """ >>> +#if PY_VERSION_HEX < 0x02050000 >>> + /* NumPy headers define PyIndex_Check incorrectly */ >>> + #undef PyIndex_Check >>> + #define PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && >>> !PyComplex_Check(o)) >>> +#endif >>> """ >>> >>> which may or may not have come from NumPy, shouldn't we be using our own >>> definition of a "__Pyx_PyIndex_Check" in our code instead? >> >> I thought about that, but then people do expect PyIndex_Check to work >> when they cimport it from cpython. But this fix doesn't really address >> that either, it just works if you use memoryviews (it's more of a >> quick and dirty hack, this fix needs to be associated with the cimport >> of numpy). >> >> Maybe we should use __Pyx_PyIndex_Check internally, and define >> PyIndex_Check like we do now for user convenience, and let numpy break >> it? > > +1 for all three points. Cython's own code should always be safe, users > won't normally use that function anyway and NumPy would only break their > code in Py2.4, which is sufficiently rarely used.
Great, I'm on it. On second consideration, it's better to not break it at all, and just define it to __Pyx_PyIndex_Check in the pxd. > BTW, has anyone brought this to the attention of the NumPy developers yet? > They might want to fix their definition. I haven't yet, maybe I'll just do a PR for such a trivial fix -- although maybe they have a reason for their definition. > Stefan > > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel