[Python-Dev] PEP 3118: Extended buffer protocol (new version)
Carl Banks
pythondev at aerojockey.com
Tue Apr 10 01:59:41 CEST 2007
Travis Oliphant wrote:
> Py_BUF_READONLY
> The returned buffer must be readonly and the underlying object
should make
> its memory readonly if that is possible.
I don't like the "if possible" thing. If it makes no guarantees, it
pretty much useless over Py_BUF_SIMPLE.
> Py_BUF_FORMAT
> The consumer will be using the format string information so make sure that
> member is filled correctly.
Is the idea to throw an exception if there's some other data format
besides "b", and this flag isn't set? It seems superfluous otherwise.
> Py_BUF_SHAPE
> The consumer can (and might) make use of using the ndims and shape members of the structure
> so make sure they are filled in correctly.
>
> Py_BUF_STRIDES (implies SHAPE)
> The consumer can (and might) make use of the strides member of the structure (as well
> as ndims and shape)
Is there any reasonable benefit for allowing Py_BUF_SHAPE without
Py_BUF_STRIDES? Would the array be C- or Fortran-like?
Another little mistake I made: looking at the Python source, it seems
that most C defines do not use the Py_ prefix, so probably we shouldn't
here. Sorry.
Carl
More information about the Python-Dev
mailing list