bpo-39572: Document ’total’ flag of TypedDict (GH-18554)

This commit is contained in:
ananthan-123 2020-02-19 10:03:05 +05:30 committed by GitHub
parent a4ba8a3983
commit ab6423fe2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 3 deletions

View File

@ -996,8 +996,20 @@ The module defines the following classes, functions and decorators:
Point2D = TypedDict('Point2D', x=int, y=int, label=str)
Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
See :pep:`589` for more examples and detailed rules of using ``TypedDict``
with type checkers.
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):
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.
See :pep:`589` for more examples and detailed rules of using ``TypedDict``.
.. versionadded:: 3.8

View File

@ -13,7 +13,7 @@ At large scale, the structure of the module is following:
* Public helper functions: get_type_hints, overload, cast, no_type_check,
no_type_check_decorator.
* Generic aliases for collections.abc ABCs and few additional protocols.
* Special types: NewType, NamedTuple, TypedDict (may be added soon).
* Special types: NewType, NamedTuple, TypedDict.
* Wrapper submodules for re and io related types.
"""
@ -1885,6 +1885,19 @@ class TypedDict(dict, metaclass=_TypedDictMeta):
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.
Usage::
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.
The class syntax is only supported in Python 3.6+, while two other
syntax forms work for Python 2.7 and 3.2+
"""

View File

@ -0,0 +1 @@
Updated documentation of ``total`` flag of TypeDict.