64 lines
2.8 KiB
Cython
64 lines
2.8 KiB
Cython
# 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.
|