From c5be72a03ac99f66794b35eabe6f5490dfef9ce3 Mon Sep 17 00:00:00 2001 From: Cody Maloney Date: Mon, 7 Apr 2025 16:03:28 -0700 Subject: [PATCH 1/3] gh-132246: Add special buffer methods to C API Type Object docs Two special methods, __buffer__ and __release_buffer__ were added to Python 3.12 by PEP 688. The C API Type Object documentation for slots includes `tp_as_buffer`, and sub-slots `bf_getbuffer`, `bf_releasebuffer` but does not refer to the Python Data Model version of those. Add the missing references. --- Doc/c-api/typeobj.rst | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index 9d551aa997ba1f..39362fc93843e9 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -79,7 +79,7 @@ Quick Reference | :c:member:`~PyTypeObject.tp_setattro` | :c:type:`setattrofunc` | __setattr__, | X | X | | G | | | | __delattr__ | | | | | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ - | :c:member:`~PyTypeObject.tp_as_buffer` | :c:type:`PyBufferProcs` * | | | | | % | + | :c:member:`~PyTypeObject.tp_as_buffer` | :c:type:`PyBufferProcs` * | :ref:`sub-slots` | | | | % | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ | :c:member:`~PyTypeObject.tp_flags` | unsigned long | | X | X | | ? | +------------------------------------------------+-----------------------------------+-------------------+---+---+---+---+ @@ -325,9 +325,16 @@ sub-slots +---------------------------------------------------------+-----------------------------------+---------------+ | | +---------------------------------------------------------+-----------------------------------+---------------+ - | :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | | + | :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | :meth:`\ | + | | | object.\ | + | | | __buffer__` | + | | | | + | | | | +---------------------------------------------------------+-----------------------------------+---------------+ - | :c:member:`~PyBufferProcs.bf_releasebuffer` | :c:func:`releasebufferproc` | | + | :c:member:`~PyBufferProcs.bf_releasebuffer` | :c:func:`releasebufferproc` | :meth:`\ | + | | | object.\ | + | | | __release_\ | + | | | buffer__` | +---------------------------------------------------------+-----------------------------------+---------------+ .. _slot-typedefs-table: From 1533b1046ac7c851eb84c908851f2c9cea83bb5b Mon Sep 17 00:00:00 2001 From: Cody Maloney Date: Mon, 7 Apr 2025 20:12:13 -0700 Subject: [PATCH 2/3] Hide the object. in link --- Doc/c-api/typeobj.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index 39362fc93843e9..ab1fdbfaf47c56 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -326,13 +326,13 @@ sub-slots | | +---------------------------------------------------------+-----------------------------------+---------------+ | :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | :meth:`\ | - | | | object.\ | + | | | ~object.\ | | | | __buffer__` | | | | | | | | | +---------------------------------------------------------+-----------------------------------+---------------+ | :c:member:`~PyBufferProcs.bf_releasebuffer` | :c:func:`releasebufferproc` | :meth:`\ | - | | | object.\ | + | | | ~object.\ | | | | __release_\ | | | | buffer__` | +---------------------------------------------------------+-----------------------------------+---------------+ From f57b0ffa391f7bfab42b19ca79776f23235ed4d6 Mon Sep 17 00:00:00 2001 From: Cody Maloney Date: Mon, 21 Apr 2025 13:52:16 -0700 Subject: [PATCH 3/3] Remove :meth:, escape to get non-italic and non-link --- Doc/c-api/typeobj.rst | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index ab1fdbfaf47c56..e850e38c7ebd46 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -325,16 +325,10 @@ sub-slots +---------------------------------------------------------+-----------------------------------+---------------+ | | +---------------------------------------------------------+-----------------------------------+---------------+ - | :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | :meth:`\ | - | | | ~object.\ | - | | | __buffer__` | - | | | | - | | | | + | :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | __buffer__ | +---------------------------------------------------------+-----------------------------------+---------------+ - | :c:member:`~PyBufferProcs.bf_releasebuffer` | :c:func:`releasebufferproc` | :meth:`\ | - | | | ~object.\ | - | | | __release_\ | - | | | buffer__` | + | :c:member:`~PyBufferProcs.bf_releasebuffer` | :c:func:`releasebufferproc` | __release_\ | + | | | buffer\__ | +---------------------------------------------------------+-----------------------------------+---------------+ .. _slot-typedefs-table: