On 30 June 2010 02:48, Charles R Harris <charlesr.harris@gmail.com> wrote:
On Tue, Jun 29, 2010 at 8:21 PM, Lisandro Dalcin <dalcinl@gmail.com> wrote:
Do we really need this for NumPy 2? What about using the old PyCObject for all Py 2.x versions? If this is not done, perhaps NumPy 2 on top of Py 2.x should still accept the __array_struct__ being a PyCObject?
As reference, Cython still uses PyCObject for Py<3.1 http://hg.cython.org/cython-devel/rev/8a58f1544bd8#l1.33 .
Blame the Python 2.7 developers, those suckers deprecated the PyCObject.
Oh! Sorry! Now I realize that!
Grrr... I didn't see the point, myself, I'm tempted to deprecate 2.7 just to get even. There are some routines in the numpy/core/src includes that you might want to copy, they will allow you to use a common interface for PyCObject and PyCapsule if you need to do that.
I've already fixed my code for PyCapsule. What's not clear to me is how to build (i.e, use the old cobject or the new capsules) __array_struct__ across NumPy and Python versions combinations. Will NumPy 1.x series ever support Python 2.7? In such case, should I use cobjects or capsules? Still, I think NumPy should still accept cobjects from extension types on a Python 2.x runtime, the fix for this support is trival: accept cobjects in NpyCapsule_Check() and NpyCapsule_AsVoidPtr() for PY_MAJOR_VERSION==2. People can still live with PendingDeprecationWarning (remember, they are shown if explicitly requested with -W), and such warning is triggered when cobjects are created, not when they are accessed. -- Lisandro Dalcin --------------- CIMEC (INTEC/CONICET-UNL) Predio CONICET-Santa Fe Colectora RN 168 Km 472, Paraje El Pozo Tel: +54-342-4511594 (ext 1011) Tel/Fax: +54-342-4511169