From 1ad4b9d71a888e342a12e25784652f60d8d97928 Mon Sep 17 00:00:00 2001 From: Anh71me Date: Fri, 19 Aug 2022 01:53:30 +0800 Subject: [PATCH 1/5] GH-96079 Fix missing field name for _AnnotatedAlias --- Lib/typing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/typing.py b/Lib/typing.py index 43ef07e50cfefc..065a70a00051ca 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -2099,7 +2099,7 @@ def __init__(self, origin, metadata): if isinstance(origin, _AnnotatedAlias): metadata = origin.__metadata__ + metadata origin = origin.__origin__ - super().__init__(origin, origin) + super().__init__(origin, origin, name='Annotated') self.__metadata__ = metadata def copy_with(self, params): From 7ac58019e19c814be466d08679e187c96b652006 Mon Sep 17 00:00:00 2001 From: iyume Date: Wed, 31 Aug 2022 18:44:51 +0800 Subject: [PATCH 2/5] Override _AnnotatedAlias mro_entries --- Lib/typing.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/typing.py b/Lib/typing.py index 065a70a00051ca..d07c4bfcd48ca4 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -2132,6 +2132,9 @@ def __getattr__(self, attr): return 'Annotated' return super().__getattr__(attr) + def __mro_entries__(self, bases): + return (self.__origin__,) + class Annotated: """Add context specific metadata to a type. From 26f9b934634f3e7f0fa0094f952344b3c094750f Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Wed, 31 Aug 2022 11:10:22 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst diff --git a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst new file mode 100644 index 00000000000000..71a845ce186fc0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst @@ -0,0 +1 @@ +In :mod:`typing`, fix missing field `name` and incorrect `__module__` in _AnnotatedAlias. From 95e86e69d0326bf3aa77b68ddaa3f8f3dc2aa0e3 Mon Sep 17 00:00:00 2001 From: iyume Date: Wed, 31 Aug 2022 19:46:50 +0800 Subject: [PATCH 4/5] fix NEWS --- .../next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst index 71a845ce186fc0..4cb8d276cbe7f7 100644 --- a/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst +++ b/Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst @@ -1 +1 @@ -In :mod:`typing`, fix missing field `name` and incorrect `__module__` in _AnnotatedAlias. +In :mod:`typing`, fix missing field ``name`` and incorrect ``__module__`` in _AnnotatedAlias. From c7f2686d41a9ef654797ecf2bb56e9876d57eee9 Mon Sep 17 00:00:00 2001 From: iyume Date: Wed, 31 Aug 2022 20:26:48 +0800 Subject: [PATCH 5/5] Add test for Annotated special member --- Lib/test/test_typing.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 3f4101485c6e08..314bc559d4e87e 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -7131,6 +7131,7 @@ def test_special_attrs(self): typing.Self: 'Self', # Subscribed special forms typing.Annotated[Any, "Annotation"]: 'Annotated', + typing.Annotated[int, 'Annotation']: 'Annotated', typing.ClassVar[Any]: 'ClassVar', typing.Concatenate[Any, SpecialAttrsP]: 'Concatenate', typing.Final[Any]: 'Final',