[Numpy-discussion] Numarray feature request: supporting the buffer interface

Prabhu Ramachandran prabhu_r at users.sf.net
Fri Jan 7 09:55:10 CST 2005


>>>>> "TM" == Todd Miller <jmiller at stsci.edu> writes:

    TM> On Fri, 2005-01-07 at 09:19, Chris Perkins wrote:
    >> On Fri, 7 Jan 2005 10:01:37 +0530, Prabhu Ramachandran
    >> <prabhu_r at users.sf.net> wrote:
    >> >
    >> > I noticed that numarray does not support this interface.  My
    >> > feature request is that numarray arrays also support this
    >> > buffer interface (if possible).
    >>
    >> I second this request.
[...]

    TM> Without looking at code, my guess is that the C source level
    TM> compatibility of numarray with Numeric will enable a "direct
    TM> graft" of the buffer protocol code from Numeric to numarray.
    TM> I think it will be easy... but...

    TM> numarray has a concept of "misbehaved arrays", i.e.  arrays in
    TM> the binary format of another platform and therefore
    TM> byte-swapped, or arrays spread across records and therefore
    TM> possibly noncontiguous or misaligned.  I think these buffers
    TM> are likely unusable so providing access to them is a mistake.
    TM> Misbehaved arrays probably don't arise in the work of most
    TM> users, but they are a possibility that has to be accounted
    TM> for.

    TM> For cases of misbehaved arrays, I think raising a ValueError
    TM> exception is necessary.  How does that sound?

I think that sounds reasonable.  In my particular use case I always
flatten (ravel) the array before using it as a buffer.  I guess that
in cases where the array is non-contiguous or misaligned a copy of the
data is made on ravel so these would not be a problem for me.  For
misbehaved arrays, a ValueError with a decent error message would be
perfect!

Anyway, thanks for considering the feature request!

cheers,
prabhu




More information about the Numpy-discussion mailing list