]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-99249: Clarify "read-only" slots tp_bases & tp_mro (GH-99342)
authorPetr Viktorin <encukou@gmail.com>
Mon, 28 Nov 2022 08:22:08 +0000 (09:22 +0100)
committerGitHub <noreply@github.com>
Mon, 28 Nov 2022 08:22:08 +0000 (09:22 +0100)
commit219696abb240607d3f807853c4c180825e60716e
tree9ac158219c63c06ff6002098a67b6050a6fa1e08
parent594de165bf2f21d6b28eb17003ea78fc20c0ffed
gh-99249: Clarify "read-only" slots tp_bases & tp_mro (GH-99342)

These slots are marked "should be treated as read-only" in the
table at the start of the document.  That doesn't say anything about
setting them in the static struct.

`tp_bases` docs did say that it should be ``NULL`` (TIL!). If you
ignore that, seemingly nothing bad happens. However, some slots
may not be inherited, depending on which sub-slot structs are present.
(FWIW, NumPy sets tp_bases and is affected by the quirk -- though to
be fair, its DUAL_INHERIT code probably predates tp_bases docs, and
also the result happens to be benign.)

This patch makes things explicit.
It also makes the summary table legend easier to scan.

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
Doc/c-api/typeobj.rst