mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-132246: Add PEP 688 to C Buffer Protocol docs (#132249)
This commit is contained in:
parent
ab64130b57
commit
8421b648e9
1 changed files with 10 additions and 4 deletions
|
@ -26,17 +26,19 @@ characteristic of being backed by a possibly large memory buffer. It is
|
|||
then desirable, in some situations, to access that buffer directly and
|
||||
without intermediate copying.
|
||||
|
||||
Python provides such a facility at the C level in the form of the :ref:`buffer
|
||||
protocol <bufferobjects>`. This protocol has two sides:
|
||||
Python provides such a facility at the C and Python level in the form of the
|
||||
:ref:`buffer protocol <bufferobjects>`. This protocol has two sides:
|
||||
|
||||
.. index:: single: PyBufferProcs (C type)
|
||||
|
||||
- on the producer side, a type can export a "buffer interface" which allows
|
||||
objects of that type to expose information about their underlying buffer.
|
||||
This interface is described in the section :ref:`buffer-structs`;
|
||||
This interface is described in the section :ref:`buffer-structs`; for
|
||||
Python see :ref:`python-buffer-protocol`.
|
||||
|
||||
- on the consumer side, several means are available to obtain a pointer to
|
||||
the raw underlying data of an object (for example a method parameter).
|
||||
the raw underlying data of an object (for example a method parameter). For
|
||||
Python see :class:`memoryview`.
|
||||
|
||||
Simple objects such as :class:`bytes` and :class:`bytearray` expose their
|
||||
underlying buffer in byte-oriented form. Other forms are possible; for example,
|
||||
|
@ -62,6 +64,10 @@ In both cases, :c:func:`PyBuffer_Release` must be called when the buffer
|
|||
isn't needed anymore. Failure to do so could lead to various issues such as
|
||||
resource leaks.
|
||||
|
||||
.. versionadded:: 3.12
|
||||
|
||||
The buffer protocol is now accessible in Python, see
|
||||
:ref:`python-buffer-protocol` and :class:`memoryview`.
|
||||
|
||||
.. _buffer-structure:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue