From: Nikita Sobolev Date: Mon, 10 Apr 2023 14:57:17 +0000 (+0300) Subject: gh-97797: Mention `__metadata__` in docstrings of `typing.{_AnnotatedAlias, Annotated... X-Git-Tag: v3.12.0b1~583 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dc604a8c58af748ce25aee1af36b6521a3592fa5;p=thirdparty%2FPython%2Fcpython.git gh-97797: Mention `__metadata__` in docstrings of `typing.{_AnnotatedAlias, Annotated}` (#103405) Co-authored-by: Alex Waygood Co-authored-by: Kirill <80244920+Eclips4@users.noreply.github.com> --- diff --git a/Lib/typing.py b/Lib/typing.py index 1f1c4ffa2566..7c165562c2b5 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -2154,6 +2154,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): @@ -2209,6 +2211,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]