[Numpy-discussion] numpy.int32, type inheritance and tp_flags

David Cournapeau david at ar.media.kyoto-u.ac.jp
Tue Jun 2 01:58:38 EDT 2009


Charles R Harris wrote:
>
>
> On Mon, Jun 1, 2009 at 11:08 PM, David Cournapeau
> <david at ar.media.kyoto-u.ac.jp <mailto:david at ar.media.kyoto-u.ac.jp>>
> wrote:
>
>     Hi,
>
>        I have a question related to #1121
>     (http://projects.scipy.org/numpy/ticket/1121). With python 2.6,
>     PyInt_Check(a) if a is an instance of numpy.int32 does not work
>     anymore.
>     It think this is related to the python issue 2263
>
>
>     (http://bugs.python.org/issue2263), where the tp_flags has been
>     changed
>     for the python int object, change which influences PyInt_Check
>     behavior.
>
>
> It would be nice if the python folks would document
> Py_TPFLAGS_INT_SUBCLASS so we knew what it did. I also wonder if the
> problem with struct and the related bug with timeseries aren't python
> bugs. Shouldn't python be checking for conversion calls rather than an
> integer subclass?

I found this while walking through the python hg log:

http://www.mail-archive.com/python-dev@python.org/msg18140.html

As I understand it, that's basically an optimization for fast subclass
testing, and is indeed not documented. But instead of hard-coding the
additional flag for types which support this in numpy, I think it would
be better to have something which will not break again when another flag
is added to some types. Specially since related bugs are quite hard to
track. I don't know how to do it, though, as the python doc says that
inheriting tp_flags is tricky...

David



More information about the NumPy-Discussion mailing list