[Cython] Cython 0.16 and ndarray fields deprecation

Stefan Behnel stefan_ml at behnel.de
Wed Feb 29 18:42:27 CET 2012

Dag Sverre Seljebotn, 29.02.2012 18:06:
> I'm wondering what the best course of action for deprecating the shape
> field in numpy.pxd is.
> The thing is, currently "shape" really gets in the way. In most situations
> it is OK with slow access to shape through the Python layer, and
> "arr.shape[0]" is often just fine, but currently one is in a situation
> where one must either write "(<object>arr).shape[0])" or
> "np.PyArray_DIMS(arr)[0]", or be faced with code that isn't
> forward-compatible with NumPy.

Can Cython emulate this at the C layer? And even your work-around for the
Python object access looks more like a Cython bug to me. I wouldn't know
why that can't "just work". It usually works for other undeclared Python
attributes of "anything", so it might just as well be made to work here.

> It would really be good to do the transition as fast as possible, so that
> all Cython code eventually becomes ready for upcoming NumPy releases.

But it previously worked, right? It's just no longer supported in newer
NumPy versions IIUC? If that's the case, deleting it would break otherwise
working code. No-one forces you to switch to the latest NumPy version,
after all, and certainly not right now. A warning is much better.

> The simplest change to make would be to simply remove all the ndarray
> fields from numpy.pxd, and inform about the alternatives in the release
> notes. That could be done in time for 0.16.
> The alternatives of sounding sane deprecation warnings in just the right
> places takes more work. I can't work on that myself until PyCon sprints...
> perhaps put out 0.16.1 with just this change after PyCon sprints though...

Personally, I don't think this is time critical.


More information about the cython-devel mailing list