gh-97797: Mention __metadata__ in docstrings of typing.{_AnnotatedAlias, Annotated} (GH-103405)

(cherry picked from commit dc604a8c58)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Kirill <80244920+Eclips4@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2023-04-10 08:21:45 -07:00 committed by GitHub
parent 4e284ffa2e
commit 0f6319fc8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2099,6 +2099,8 @@ class _AnnotatedAlias(_NotIterable, _GenericAlias, _root=True):
with extra annotations. The alias behaves like a normal typing alias, with extra annotations. The alias behaves like a normal typing alias,
instantiating is the same as instantiating the underlying type, binding instantiating is the same as instantiating the underlying type, binding
it to types is also the same. it to types is also the same.
The metadata itself is stored in a '__metadata__' attribute as a tuple.
""" """
def __init__(self, origin, metadata): def __init__(self, origin, metadata):
if isinstance(origin, _AnnotatedAlias): if isinstance(origin, _AnnotatedAlias):
@ -2151,6 +2153,10 @@ class Annotated:
Details: Details:
- It's an error to call `Annotated` with less than two arguments. - It's an error to call `Annotated` with less than two arguments.
- Access the metadata via the ``__metadata__`` attribute::
Annotated[int, '$'].__metadata__ == ('$',)
- Nested Annotated are flattened:: - Nested Annotated are flattened::
Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3] Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3]