From b7dedc89f1ec476352f3678d0c55252159da27df Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 29 Oct 2016 12:44:29 -0700 Subject: Issue #28556: updates to typing.py (fix copy, deepcopy, pickle) --- Lib/typing.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Lib/typing.py') diff --git a/Lib/typing.py b/Lib/typing.py index bda4ea59c2..572708b5ed 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 -- cgit v1.2.1