summaryrefslogtreecommitdiffstats
path: root/Lib/typing.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2016-10-29 19:44:29 (GMT)
committerGuido van Rossum <guido@python.org>2016-10-29 19:44:29 (GMT)
commitb7dedc89f1ec476352f3678d0c55252159da27df (patch)
treeceabb55abc070241c5e01ca163288deb52751e4d /Lib/typing.py
parent5fc25a873cfdec27e46f71e62c9b65df5667c1b4 (diff)
downloadcpython-b7dedc89f1ec476352f3678d0c55252159da27df.zip
cpython-b7dedc89f1ec476352f3678d0c55252159da27df.tar.gz
cpython-b7dedc89f1ec476352f3678d0c55252159da27df.tar.bz2
Issue #28556: updates to typing.py (fix copy, deepcopy, pickle)
Diffstat (limited to 'Lib/typing.py')
-rw-r--r--Lib/typing.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/typing.py b/Lib/typing.py
index bda4ea5..572708b 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -190,6 +190,9 @@ class _FinalTypingBase(_TypingBase, _root=True):
return self
raise TypeError("Cannot instantiate %r" % cls)
+ def __reduce__(self):
+ return _trim_name(type(self).__name__)
+
class _ForwardRef(_TypingBase, _root=True):
"""Wrapper to hold a forward reference."""
@@ -1051,6 +1054,11 @@ class GenericMeta(TypingMeta, abc.ABCMeta):
# classes are supposed to be rare anyways.
return issubclass(instance.__class__, self)
+ def __copy__(self):
+ return self.__class__(self.__name__, self.__bases__, dict(self.__dict__),
+ self.__parameters__, self.__args__, self.__origin__,
+ self.__extra__, self.__orig_bases__)
+
# Prevent checks for Generic to crash when defining Generic.
Generic = None