Skip to content

Commit

Permalink
pythongh-107298: Fix C API Buffer documentation (pythonGH-108011)
Browse files Browse the repository at this point in the history
(cherry picked from commit c2941cb)

Co-authored-by: Victor Stinner <[email protected]>
  • Loading branch information
vstinner authored and miss-islington committed Aug 16, 2023
1 parent 6b825c1 commit 109aa80
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
22 changes: 13 additions & 9 deletions Doc/c-api/buffer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,6 @@ a buffer, see :c:func:`PyObject_GetBuffer`.
and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``.
The maximum number of dimensions is given by :c:macro:`PyBUF_MAX_NDIM`.

.. :c:macro:: PyBUF_MAX_NDIM
The maximum number of dimensions the memory represents.
Exporters MUST respect this limit, consumers of multi-dimensional
buffers SHOULD be able to handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions.
Currently set to 64.
.. c:member:: Py_ssize_t *shape
An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`
Expand Down Expand Up @@ -221,6 +214,17 @@ a buffer, see :c:func:`PyObject_GetBuffer`.
freed when the buffer is released. The consumer MUST NOT alter this
value.


Constants:

.. c:macro:: PyBUF_MAX_NDIM
The maximum number of dimensions the memory represents.
Exporters MUST respect this limit, consumers of multi-dimensional
buffers SHOULD be able to handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions.
Currently set to 64.


.. _buffer-request-types:

Buffer request types
Expand Down Expand Up @@ -444,7 +448,7 @@ Buffer-related functions
Send a request to *exporter* to fill in *view* as specified by *flags*.
If the exporter cannot provide a buffer of the exact type, it MUST raise
:c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` and
:exc:`BufferError`, set ``view->obj`` to ``NULL`` and
return ``-1``.
On success, fill in *view*, set ``view->obj`` to a new reference
Expand Down Expand Up @@ -531,7 +535,7 @@ Buffer-related functions
and :c:macro:`PyBUF_WRITABLE` is set in *flags*.
On success, set ``view->obj`` to a new reference to *exporter* and
return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set
return 0. Otherwise, raise :exc:`BufferError`, set
``view->obj`` to ``NULL`` and return ``-1``;
If this function is used as part of a :ref:`getbufferproc <buffer-structs>`,
Expand Down
2 changes: 1 addition & 1 deletion Doc/c-api/typeobj.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2357,7 +2357,7 @@ Buffer Object Structures
Except for point (3), an implementation of this function MUST take these
steps:

(1) Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`,
(1) Check if the request can be met. If not, raise :exc:`BufferError`,
set :c:expr:`view->obj` to ``NULL`` and return ``-1``.

(2) Fill in the requested fields.
Expand Down
1 change: 0 additions & 1 deletion Doc/tools/.nitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
# as tested on the CI via check-warnings.py in reusable-docs.yml.
# Keep lines sorted lexicographically to help avoid merge conflicts.

Doc/c-api/buffer.rst
Doc/c-api/datetime.rst
Doc/c-api/descriptor.rst
Doc/c-api/exceptions.rst
Expand Down

0 comments on commit 109aa80

Please sign in to comment.