[Numpy-discussion] Testing the python buffer protocol (bf_getbuffer / tp_as_buffer)

mark florisson markflorisson88 at gmail.com
Sat Dec 17 08:36:04 EST 2011


What version of numpy are you using? IIRC the new buffer protocol has
been supported since numpy 1.5.

On 17 December 2011 08:42, Soeren Sonnenburg <sonne at debian.org> wrote:
> 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
> http://docs.python.org/c-api/objbuffer.html .
>
> 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 :-(
>
> Soeren
>
> On Sat, 2011-12-17 at 03:20 +0100, Torgil Svensson wrote:
>> What happens if you use
>>
>> y=numpy.frombuffer(x) ?
>>
>> //Torgil
>>
>>
>> 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
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>
> --
> 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
>



More information about the NumPy-Discussion mailing list