Skip to content

gh-132246: Add special buffer methods to C API Type Object docs #132247

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

cmaloney
Copy link
Contributor

@cmaloney cmaloney commented Apr 7, 2025

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.


📚 Documentation preview 📚: https://cpython-previews--132247.org.readthedocs.build/en/132247/c-api/typeobj.html#quick-reference

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.
@@ -325,9 +325,16 @@ sub-slots
+---------------------------------------------------------+-----------------------------------+---------------+
| |
+---------------------------------------------------------+-----------------------------------+---------------+
| :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | |
| :c:member:`~PyBufferProcs.bf_getbuffer` | :c:func:`getbufferproc` | :meth:`\ |
Copy link
Contributor Author

@cmaloney cmaloney Apr 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The :meth: references make it link to the right document; can also match the other cases and not use. The __release_buffer__ is one character wider than the table column even without the :meth: pieces...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should be using a :meth: reference here. Nothing else in the table has one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated. A little unexpected (for me) escaping, \__ at the end is needed so buffer__ doesn't become a link.

@ZeroIntensity ZeroIntensity added the needs backport to 3.13 bugs and security fixes label Apr 21, 2025
Copy link
Member

@ZeroIntensity ZeroIntensity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could also expand the table so __release_buffer__ fits, but I don't have much of a preference.

@cmaloney
Copy link
Contributor Author

I tried a couple times to get my head around emacs table mode to automatedly do that but was unsuccessful, for one char I don't think worth the big diff. I may look at making all entries :meth: / full references, and expand the table a bit with that as an independent project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

2 participants