[Numpy-discussion] Testing the python buffer protocol (bf_getbuffer / tp_as_buffer)
sonne at debian.org
Sat Dec 17 03:42:56 EST 2011
Doesn't work, complaining that the object has no __buffer__ attribute.
Digging into the numpy c code it seems numpy doesn't even support the
buffer protocol but only the deprecated (old) one
At least there is nowhere a PyObject_CheckBuffer() call but frombuffer
in the numpy C code checks for
(Py_TYPE(buf)->tp_as_buffer->bf_getwritebuffer == NULL
&& Py_TYPE(buf)->tp_as_buffer->bf_getreadbuffer == NULL)
So it needs bf_read/writebuffer to be set instead of bf_getbuffer and the array buffer protocol :-(
On Sat, 2011-12-17 at 03:20 +0100, Torgil Svensson wrote:
> What happens if you use
> y=numpy.frombuffer(x) ?
> On Sat, Dec 17, 2011 at 1:41 AM, Soeren Sonnenburg <sonne at debian.org> wrote:
> > Hi,
> > I've implemented the buffer protocol
> > (http://www.python.org/dev/peps/pep-3118/) for some matrix class and
> > when I manually call PyObject_GetBuffer on that object I see that I get
> > the right matrix.
> > Now I'd like to see numpy use the buffer protocol of my class. Does
> > anyone know how to test that? What do I need to write, just
> > x=MyMatrix([1,2,3])
> > y=numpy.array(x)
> > (that doesn't call the buffer function though - so it must be sth else)?
> > Any ideas?
> > Soeren
> > --
> > For the one fact about the future of which we can be certain is that it
> > will be utterly fantastic. -- Arthur C. Clarke, 1962
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
For the one fact about the future of which we can be certain is that it
will be utterly fantastic. -- Arthur C. Clarke, 1962
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 836 bytes
Desc: This is a digitally signed message part
More information about the NumPy-Discussion