[Numpy-discussion] __array__struct__: about using PyCapsule instead of PyCObject for Python 2.7

Sturla Molden sturla at molden.no
Thu Jul 1 23:52:10 EDT 2010


Lisandro Dalcin skrev:
> No, no sarcasm at all! I just realized that PyCObject were
> (pending)deprecated in 2.7 ... Anyway. let me say I'm so annoyed and
> upset as you.
>
>   
PyCapsule should be used instead. It has two main advantages over 
PyCObject: First, it associates a 'name' with the void pointer, to 
provide some sort of type safety. (The 'name' could have been named 
'password' to make its intention clear.) Second, the PyCapsule API makes 
it easier to implement destructors.

PyCObject is a severe security hole and stability problem. It can crash 
the interpreter or run exploit code, as no checks are made before 
destructors are executed.

PyCObject will never be missed. And personally I am glad it was 
deprecated because it should be avoided. It is better to include a 
backport of PyCapsule than continue to use PyCObject for Python 2.6, 2.5 
and 2.4.

Sturla



More information about the NumPy-Discussion mailing list