diff options
| author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2021-07-30 06:48:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-30 15:48:01 +0200 |
| commit | 56122b0bba7a9e2e3ec672a6c22bfdd7ecf08cbe (patch) | |
| tree | 454a748194c2d0f7b60d66362589e28c0ca2ce51 /Lib/typing.py | |
| parent | 0cb470e622ba37920c72e4d8f284741b9fbaea8b (diff) | |
| download | cpython-git-56122b0bba7a9e2e3ec672a6c22bfdd7ecf08cbe.tar.gz | |
bpo-44761: Change default value of NewType __module__ attr (GH-27406) (GH-27477)
(cherry picked from commit 7b975f81e4dba70a42c6279539a7fcfe4211b4c0)
Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com>
Diffstat (limited to 'Lib/typing.py')
| -rw-r--r-- | Lib/typing.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/typing.py b/Lib/typing.py index 2c2d8ec1a1..bcb22b2d17 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1379,11 +1379,11 @@ def _no_init(self, *args, **kwargs): if type(self)._is_protocol: raise TypeError('Protocols cannot be instantiated') -def _callee(depth=2, default=None): +def _caller(depth=1, default='__main__'): try: - return sys._getframe(depth).f_globals['__name__'] + return sys._getframe(depth + 1).f_globals.get('__name__', default) except (AttributeError, ValueError): # For platforms without _getframe() - return default + return None def _allow_reckless_class_checks(depth=3): @@ -2385,8 +2385,10 @@ class NewType: if '.' in name: name = name.rpartition('.')[-1] self.__name__ = name - self.__module__ = _callee(default='typing') self.__supertype__ = tp + def_mod = _caller() + if def_mod != 'typing': + self.__module__ = def_mod def __repr__(self): return f'{self.__module__}.{self.__qualname__}' |
