bpo-44353: Expand NewType tests for complex __qualname__. (#27311)

Make NewType pickleable by name.
This commit is contained in:
Serhiy Storchaka 2021-07-24 10:40:08 +03:00 committed by GitHub
parent 4512848ab9
commit e89ef0ad2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 18 deletions

View file

@ -2385,14 +2385,19 @@ class NewType:
__call__ = _idfunc
def __init__(self, name, tp):
self.__name__ = name
self.__qualname__ = name
if '.' in name:
name = name.rpartition('.')[-1]
self.__name__ = name
self.__module__ = _callee(default='typing')
self.__supertype__ = tp
def __repr__(self):
return f'{self.__module__}.{self.__qualname__}'
def __reduce__(self):
return self.__qualname__
def __or__(self, other):
return Union[self, other]