123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # 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.
|