]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-96079 Fix missing field name for _AnnotatedAlias (#96080)
authorAnh71me <iyumelive@gmail.com>
Wed, 31 Aug 2022 23:02:24 +0000 (07:02 +0800)
committerGitHub <noreply@github.com>
Wed, 31 Aug 2022 23:02:24 +0000 (16:02 -0700)
Lib/test/test_typing.py
Lib/typing.py
Misc/NEWS.d/next/Library/2022-08-31-11-10-21.gh-issue-96079.uqrXdJ.rst [new file with mode: 0644]

index 9239673c24802865936ebc9d1b723b5ae07ab5ff..015fa80942a2900c577296ff0bff2262c17f2e0f 100644 (file)
@@ -7143,6 +7143,7 @@ class SpecialAttrsTests(BaseTestCase):
             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',
index 84fe007a9ee6c241510cc347c5cc5b81cf27ae1a..95bd61c7f8c61f4b0c54cf2c933e2e20888bf937 100644 (file)
@@ -2101,7 +2101,7 @@ class _AnnotatedAlias(_NotIterable, _GenericAlias, _root=True):
         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):
@@ -2134,6 +2134,9 @@ class _AnnotatedAlias(_NotIterable, _GenericAlias, _root=True):
             return 'Annotated'
         return super().__getattr__(attr)
 
+    def __mro_entries__(self, bases):
+        return (self.__origin__,)
+
 
 class Annotated:
     """Add context specific metadata to a type.
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 (file)
index 0000000..4cb8d27
--- /dev/null
@@ -0,0 +1 @@
+In :mod:`typing`, fix missing field ``name`` and incorrect ``__module__`` in _AnnotatedAlias.