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,
instantiating is the same as instantiating the underlying type, binding
it to types is also the same.
The metadata itself is stored in a '__metadata__' attribute as a tuple.
"""
def __init__(self, origin, metadata):
if isinstance(origin, _AnnotatedAlias):
@ -2151,6 +2153,10 @@ class Annotated:
Details:
- 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::
Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3]