On Thu, 18 Aug 2011 18:22:54 +0200 Stefan Krah <stefan@bytereef.org> wrote:
So, memoryview does exactly the opposite of what is specified. It should reject the bytes object but accept the integer.
Well, memoryview is quite dumb right now. It ignores the format and just considers its underlying memory a bytes sequence.
I would like to fix this in the features/pep-3118 repository as follows:
- memoryview should respect the format specifiers.
- bytearray and friends should set the format specifier to "c" in their getbuffer() methods.
- Introduce a new function PyMemoryView_FromBytes() that can be used instead of PyMemoryView_FromBuffer(). PyMemoryView_FromBuffer() is usually used in conjunction with PyBuffer_FillInfo(), which sets the format specifier to "B".
What would PyMemoryView_FromBytes() do? The name suggests it takes a bytes object, but you can already use PyMemoryView_FromObject() for that. (I personnaly think the general bytes-as-sequence-of-ints behaviour is a mistake, so I wouldn't care much about an additional C API to enforce that behaviour :-)) Regards Antoine.