summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandt Bucher <brandt@python.org>2021-05-02 22:35:00 (GMT)
committerGitHub <noreply@github.com>2021-05-02 22:35:00 (GMT)
commit9387fac100db359cbb6ec2a76f8a5eba8f9d7b65 (patch)
tree50b2d7b1a39f296a6bd57733e087a5dde3622787
parentcbb7b9ed4a6069a2cb2e2f809926c2cfa332a493 (diff)
downloadcpython-9387fac100db359cbb6ec2a76f8a5eba8f9d7b65.zip
cpython-9387fac100db359cbb6ec2a76f8a5eba8f9d7b65.tar.gz
cpython-9387fac100db359cbb6ec2a76f8a5eba8f9d7b65.tar.bz2
bpo-43977: Document the new pattern matching type flags (GH-25734)
-rw-r--r--Doc/c-api/typeobj.rst44
-rw-r--r--Misc/NEWS.d/next/Documentation/2021-04-29-15-06-03.bpo-43977.K5aSl1.rst2
2 files changed, 46 insertions, 0 deletions
diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst
index 5e731bd..82f2ab5 100644
--- a/Doc/c-api/typeobj.rst
+++ b/Doc/c-api/typeobj.rst
@@ -1219,6 +1219,50 @@ and :c:type:`PyType_Type` effectively act as defaults.)
.. versionadded:: 3.10
+ .. data:: Py_TPFLAGS_MAPPING
+
+ This bit indicates that instances of the class may match mapping patterns
+ when used as the subject of a :keyword:`match` block. It is automatically
+ set when registering or subclassing :class:`collections.abc.Mapping`, and
+ unset when registering :class:`collections.abc.Sequence`.
+
+ .. note::
+
+ :const:`Py_TPFLAGS_MAPPING` and :const:`Py_TPFLAGS_SEQUENCE` are
+ mutually exclusive; it is an error enable both flags simultaneously.
+
+ **Inheritance:**
+
+ This flag is inherited by types that do not already set
+ :const:`Py_TPFLAGS_SEQUENCE`.
+
+ .. seealso:: :pep:`634` -- Structural Pattern Matching: Specification
+
+ .. versionadded:: 3.10
+
+
+ .. data:: Py_TPFLAGS_SEQUENCE
+
+ This bit indicates that instances of the class may match sequence patterns
+ when used as the subject of a :keyword:`match` block. It is automatically
+ set when registering or subclassing :class:`collections.abc.Sequence`, and
+ unset when registering :class:`collections.abc.Mapping`.
+
+ .. note::
+
+ :const:`Py_TPFLAGS_MAPPING` and :const:`Py_TPFLAGS_SEQUENCE` are
+ mutually exclusive; it is an error enable both flags simultaneously.
+
+ **Inheritance:**
+
+ This flag is inherited by types that do not already set
+ :const:`Py_TPFLAGS_MAPPING`.
+
+ .. seealso:: :pep:`634` -- Structural Pattern Matching: Specification
+
+ .. versionadded:: 3.10
+
+
.. c:member:: const char* PyTypeObject.tp_doc
An optional pointer to a NUL-terminated C string giving the docstring for this
diff --git a/Misc/NEWS.d/next/Documentation/2021-04-29-15-06-03.bpo-43977.K5aSl1.rst b/Misc/NEWS.d/next/Documentation/2021-04-29-15-06-03.bpo-43977.K5aSl1.rst
new file mode 100644
index 0000000..20b5fd7
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2021-04-29-15-06-03.bpo-43977.K5aSl1.rst
@@ -0,0 +1,2 @@
+Document the new :const:`Py_TPFLAGS_MAPPING` and
+:const:`Py_TPFLAGS_SEQUENCE` type flags.