summaryrefslogtreecommitdiffstats
path: root/Lib/typing.py
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2020-12-10 21:49:05 (GMT)
committerGitHub <noreply@github.com>2020-12-10 21:49:05 (GMT)
commit67b769f5157c9dad1c7dd6b24e067b9fdab5b35d (patch)
treef7866a693a7fa42ce88f86d89159ce26c1adc361 /Lib/typing.py
parenta65828717982e6a56382d7aff738478f5b5b25d0 (diff)
downloadcpython-67b769f5157c9dad1c7dd6b24e067b9fdab5b35d.zip
cpython-67b769f5157c9dad1c7dd6b24e067b9fdab5b35d.tar.gz
cpython-67b769f5157c9dad1c7dd6b24e067b9fdab5b35d.tar.bz2
bpo-42059: Fix required/optional keys for TypedDict(..., total=False) (GH-22736)
Diffstat (limited to 'Lib/typing.py')
-rw-r--r--Lib/typing.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/Lib/typing.py b/Lib/typing.py
index 46c54c4..148a505 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -2043,14 +2043,14 @@ def TypedDict(typename, fields=None, /, *, total=True, **kwargs):
raise TypeError("TypedDict takes either a dict or keyword arguments,"
" but not both")
- ns = {'__annotations__': dict(fields), '__total__': total}
+ ns = {'__annotations__': dict(fields)}
try:
# Setting correct module is necessary to make typed dict classes pickleable.
ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__')
except (AttributeError, ValueError):
pass
- return _TypedDictMeta(typename, (), ns)
+ return _TypedDictMeta(typename, (), ns, total=total)
_TypedDict = type.__new__(_TypedDictMeta, 'TypedDict', (), {})
TypedDict.__mro_entries__ = lambda bases: (_TypedDict,)