# Legacy Python 2 buffer interface. # # These functions are no longer available in Python 3, use the new # buffer interface instead. cdef extern from "Python.h": cdef enum _: Py_END_OF_BUFFER # This constant may be passed as the size parameter to # PyBuffer_FromObject() or PyBuffer_FromReadWriteObject(). It # indicates that the new PyBufferObject should refer to base object # from the specified offset to the end of its exported # buffer. Using this enables the caller to avoid querying the base # object for its length. bint PyBuffer_Check(object p) # Return true if the argument has type PyBuffer_Type. object PyBuffer_FromObject(object base, Py_ssize_t offset, Py_ssize_t size) # Return value: New reference. # # Return a new read-only buffer object. This raises TypeError if # base doesn't support the read-only buffer protocol or doesn't # provide exactly one buffer segment, or it raises ValueError if # offset is less than zero. The buffer will hold a reference to the # base object, and the buffer's contents will refer to the base # object's buffer interface, starting as position offset and # extending for size bytes. If size is Py_END_OF_BUFFER, then the # new buffer's contents extend to the length of the base object's # exported buffer data. object PyBuffer_FromReadWriteObject(object base, Py_ssize_t offset, Py_ssize_t size) # Return value: New reference. # # Return a new writable buffer object. Parameters and exceptions # are similar to those for PyBuffer_FromObject(). If the base # object does not export the writeable buffer protocol, then # TypeError is raised. object PyBuffer_FromMemory(void *ptr, Py_ssize_t size) # Return value: New reference. # # Return a new read-only buffer object that reads from a specified # location in memory, with a specified size. The caller is # responsible for ensuring that the memory buffer, passed in as # ptr, is not deallocated while the returned buffer object # exists. Raises ValueError if size is less than zero. Note that # Py_END_OF_BUFFER may not be passed for the size parameter; # ValueError will be raised in that case. object PyBuffer_FromReadWriteMemory(void *ptr, Py_ssize_t size) # Return value: New reference. # # Similar to PyBuffer_FromMemory(), but the returned buffer is # writable. object PyBuffer_New(Py_ssize_t size) # Return value: New reference. # # Return a new writable buffer object that maintains its own memory # buffer of size bytes. ValueError is returned if size is not zero # or positive. Note that the memory buffer (as returned by # PyObject_AsWriteBuffer()) is not specifically aligned.