On 12/16/2011 04:16 PM, Fabrice Silva wrote: > Le vendredi 16 décembre 2011 à 15:33 +0100, Gregor Thalhammer a écrit : >>> Even better: the addendum! >>> http://blog.enthought.com/python/numpy/simplified-creation-of-numpy-arrays-from-pre-allocated-memory/ >>> >>> Within cython: >>> cimport numpy >>> numpy.set_array_base(my_ndarray, PyCObject_FromVoidPtr(pointer_to_Cobj, >>> some_destructor)) >>> >>> Seems OK. >>> Any objections about that ? >> >> This is ok, but CObject is deprecated as of Python 3.1, so it's not portable >> to Python 3.2. > > My guess is then that the PyCapsule object is the way to go... >
Another way: With recent NumPy you should be able to do something like this in Cython cdef class SomeBufferWrapper: ... def __getbuffer__(self, ...): ... def __releasebuffer__(self, ...): .. arr = np.asarray(SomeBufferWrapper(buf)) and then __releasebuffer__ will be called then `arr` goes out of use. See Cython docs. Dag _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion