1# Legacy Python 2 buffer interface. 2# 3# These functions are no longer available in Python 3, use the new 4# buffer interface instead. 5 6cdef extern from "Python.h": 7 cdef enum _: 8 Py_END_OF_BUFFER 9 # This constant may be passed as the size parameter to 10 # PyBuffer_FromObject() or PyBuffer_FromReadWriteObject(). It 11 # indicates that the new PyBufferObject should refer to base object 12 # from the specified offset to the end of its exported 13 # buffer. Using this enables the caller to avoid querying the base 14 # object for its length. 15 16 bint PyBuffer_Check(object p) 17 # Return true if the argument has type PyBuffer_Type. 18 19 object PyBuffer_FromObject(object base, Py_ssize_t offset, Py_ssize_t size) 20 # Return value: New reference. 21 # 22 # Return a new read-only buffer object. This raises TypeError if 23 # base doesn't support the read-only buffer protocol or doesn't 24 # provide exactly one buffer segment, or it raises ValueError if 25 # offset is less than zero. The buffer will hold a reference to the 26 # base object, and the buffer's contents will refer to the base 27 # object's buffer interface, starting as position offset and 28 # extending for size bytes. If size is Py_END_OF_BUFFER, then the 29 # new buffer's contents extend to the length of the base object's 30 # exported buffer data. 31 32 object PyBuffer_FromReadWriteObject(object base, Py_ssize_t offset, Py_ssize_t size) 33 # Return value: New reference. 34 # 35 # Return a new writable buffer object. Parameters and exceptions 36 # are similar to those for PyBuffer_FromObject(). If the base 37 # object does not export the writeable buffer protocol, then 38 # TypeError is raised. 39 40 object PyBuffer_FromMemory(void *ptr, Py_ssize_t size) 41 # Return value: New reference. 42 # 43 # Return a new read-only buffer object that reads from a specified 44 # location in memory, with a specified size. The caller is 45 # responsible for ensuring that the memory buffer, passed in as 46 # ptr, is not deallocated while the returned buffer object 47 # exists. Raises ValueError if size is less than zero. Note that 48 # Py_END_OF_BUFFER may not be passed for the size parameter; 49 # ValueError will be raised in that case. 50 51 object PyBuffer_FromReadWriteMemory(void *ptr, Py_ssize_t size) 52 # Return value: New reference. 53 # 54 # Similar to PyBuffer_FromMemory(), but the returned buffer is 55 # writable. 56 57 object PyBuffer_New(Py_ssize_t size) 58 # Return value: New reference. 59 # 60 # Return a new writable buffer object that maintains its own memory 61 # buffer of size bytes. ValueError is returned if size is not zero 62 # or positive. Note that the memory buffer (as returned by 63 # PyObject_AsWriteBuffer()) is not specifically aligned. 64