bpo-43345: Enhance TypedDict documentation. (#24668)
https://github.com/python/cpython/commit/1e3c68246ee738b5ec5450b1eb39af2fca3... commit: 1e3c68246ee738b5ec5450b1eb39af2fca300cb9 branch: master author: Paul Bryan <pbryan@mperativ.io> committer: gvanrossum <gvanrossum@gmail.com> date: 2021-02-27T23:02:14-08:00 summary: bpo-43345: Enhance TypedDict documentation. (#24668) files: M Doc/library/typing.rst diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 7ef5b3971a91e..9696fd4ef99e6 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 -
participants (1)
-
gvanrossum