[Numpy-discussion] Changes in PyArray_FromAny between 1.5.x and 1.6.x

Mike Hansen mhansen at gmail.com
Mon May 28 06:15:48 EDT 2012


Hello,

In trying to upgrade NumPy within Sage, we notices some differences in
behavior between 1.5 and 1.6.  In particular, in 1.5, we have

sage: f = 0.5
sage: f.__array_interface__
{'typestr': '=f8'}
sage: numpy.array(f)
array(0.5)
sage: numpy.array(float(f))
array(0.5)

In 1.6, we get the following,

sage: f = 0.5
sage: f.__array_interface__
{'typestr': '=f8'}
sage: numpy.array(f)
array(0.500000000000000, dtype=object)

This seems to be do to the changes in PyArray_FromAny introduced in
https://github.com/mwhansen/numpy/commit/2635398db3f26529ce2aaea4028a8118844f3c48
.  In particular, _array_find_type used to be used to query our
__array_interface__ attribute, and it no longer seems to work.  Is
there a way to get the old behavior with the current code?

--Mike



More information about the NumPy-Discussion mailing list