summaryrefslogtreecommitdiffstats
path: root/Lib/typing.py
diff options
context:
space:
mode:
authorHongWeipeng <hongweichen8888@sina.com>2020-04-20 20:01:53 (GMT)
committerGitHub <noreply@github.com>2020-04-20 20:01:53 (GMT)
commita25a04fea5446b1712cde0cff556574be139285a (patch)
tree934463e1c9cfd539287f99cd7fb496f141afa23a /Lib/typing.py
parenteba9f6155df59c9beed97fb5764c9f01dd941af0 (diff)
downloadcpython-a25a04fea5446b1712cde0cff556574be139285a.zip
cpython-a25a04fea5446b1712cde0cff556574be139285a.tar.gz
cpython-a25a04fea5446b1712cde0cff556574be139285a.tar.bz2
bpo-39942:Fix failure in `TypeVar` when missing `__name__` (GH-19616)
https://bugs.python.org/issue39942
Diffstat (limited to 'Lib/typing.py')
-rw-r--r--Lib/typing.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/typing.py b/Lib/typing.py
index df36500..9383fb8 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -606,7 +606,10 @@ class TypeVar(_Final, _Immutable, _root=True):
self.__bound__ = _type_check(bound, "Bound must be a type.")
else:
self.__bound__ = None
- def_mod = sys._getframe(1).f_globals['__name__'] # for pickling
+ try:
+ def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') # for pickling
+ except (AttributeError, ValueError):
+ def_mod = None
if def_mod != 'typing':
self.__module__ = def_mod