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

(cherry picked from commit ab6423fe2d)

Co-authored-by: ananthan-123 <ananthakrishnan15.2001@gmail.com>
This commit is contained in:
Miss Islington (bot)
2020-02-18 21:24:51 -08:00
committed by GitHub
parent d77e77116f
commit 44c690112d
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.
"""
@@ -1779,6 +1779,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.