diff options
author | Paul Bryan <pbryan@mperativ.io> | 2021-02-28 07:02:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-28 07:02:14 (GMT) |
commit | 1e3c68246ee738b5ec5450b1eb39af2fca300cb9 (patch) | |
tree | 9cad04333d1b1a638921244ef2d6333fe9fa9546 /Doc/library/typing.rst | |
parent | bf9de7ab24d9d7068645b202bc47146b9a4f2726 (diff) | |
download | cpython-1e3c68246ee738b5ec5450b1eb39af2fca300cb9.zip cpython-1e3c68246ee738b5ec5450b1eb39af2fca300cb9.tar.gz cpython-1e3c68246ee738b5ec5450b1eb39af2fca300cb9.tar.bz2 |
bpo-43345: Enhance TypedDict documentation. (#24668)
Diffstat (limited to 'Doc/library/typing.rst')
-rw-r--r-- | Doc/library/typing.rst | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 7ef5b39..9696fd4 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -1247,26 +1247,28 @@ These are not used in annotations. They are building blocks for declaring types. assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first') - The type info for introspection can be accessed via ``Point2D.__annotations__`` - and ``Point2D.__total__``. To allow using this feature with older versions - of Python that do not support :pep:`526`, ``TypedDict`` supports two additional - equivalent syntactic forms:: + The type info for introspection can be accessed via ``Point2D.__annotations__``, + ``Point2D.__total__``, ``Point2D.__required_keys__``, and + ``Point2D.__optional_keys__``. + To allow using this feature with older versions of Python that do not + support :pep:`526`, ``TypedDict`` supports two additional equivalent + syntactic forms:: Point2D = TypedDict('Point2D', x=int, y=int, label=str) Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) - By default, all keys must be present in a TypedDict. It is possible - to override this by specifying totality. + By default, all keys must be present in a ``TypedDict``. It is possible to + override this by specifying totality. Usage:: - class point2D(TypedDict, total=False): + class Point2D(TypedDict, total=False): x: int y: int - This means that a point2D TypedDict can have any of the keys omitted. A type - checker is only expected to support a literal False or True as the value of - the total argument. True is the default, and makes all items defined in the - class body be required. + This means that a ``Point2D`` ``TypedDict`` can have any of the keys + omitted. A type checker is only expected to support a literal ``False`` or + ``True`` as the value of the ``total`` argument. ``True`` is the default, + and makes all items defined in the class body required. See :pep:`589` for more examples and detailed rules of using ``TypedDict``. @@ -1980,4 +1982,3 @@ Constant (see :pep:`563`). .. versionadded:: 3.5.2 - |