From de2f3b554b1cdcbc9fa416047c321da6681d6f95 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 3 Apr 2021 14:31:15 -0700 Subject: [PATCH 1/2] PEP 634: Change so __match_args__ must be a tuple --- pep-0634.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pep-0634.rst b/pep-0634.rst index f11564d2b71..60164f3d744 100644 --- a/pep-0634.rst +++ b/pep-0634.rst @@ -492,7 +492,7 @@ as follows: the entire subject; for these types no keyword patterns are accepted. - The equivalent of ``getattr(cls, "__match_args__", ()))`` is called. - If this raises an exception the exception bubbles up. -- If the returned value is not a list or tuple, the conversion fails +- If the returned value is not a tuple, the conversion fails and ``TypeError`` is raised. - If there are more positional patterns than the length of ``__match_args__``` (as obtained using ``len()``), ``TypeError`` is raised. @@ -513,7 +513,7 @@ positional subpatterns is different: This behavior is roughly equivalent to the following:: class C: - __match_args__ = ["__match_self_prop__"] + __match_args__ = ("__match_self_prop__",) @property def __match_self_prop__(self): return self From c7c76abb4e7b9f5c35f1e68150c9a3ca0b31be63 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sun, 4 Apr 2021 08:32:52 -0700 Subject: [PATCH 2/2] Remove extra back tick --- pep-0634.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pep-0634.rst b/pep-0634.rst index 60164f3d744..740cb9a8b79 100644 --- a/pep-0634.rst +++ b/pep-0634.rst @@ -495,7 +495,7 @@ as follows: - If the returned value is not a tuple, the conversion fails and ``TypeError`` is raised. - If there are more positional patterns than the length of - ``__match_args__``` (as obtained using ``len()``), ``TypeError`` is raised. + ``__match_args__`` (as obtained using ``len()``), ``TypeError`` is raised. - Otherwise, positional pattern ``i`` is converted to a keyword pattern using ``__match_args__[i]`` as the keyword, provided it the latter is a string;