]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.6] bpo-28556: typing.get_type_hints: better globalns for classes and modules ...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 14 Sep 2017 20:52:05 +0000 (13:52 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Thu, 14 Sep 2017 20:52:05 +0000 (16:52 -0400)
commit1658ec07577ef9696cea76fcf7fac2da18403ec5
treefd39b962002c374c53b52f519a69abfde1700d6d
parentf135f62cfd1529cbb9326e53728a22afd05b6bc3
[3.6] bpo-28556: typing.get_type_hints: better globalns for classes and modules (GH-3582) (#3583)

This makes the default behavior (without specifying `globalns` manually) more
predictable for users, finds the right globalns automatically.

Implementation for classes assumes has a `__module__` attribute and that module
is present in `sys.modules`.  It does this recursively for all bases in the
MRO.  For modules, the implementation just uses their `__dict__` directly.

This is backwards compatible, will just raise fewer exceptions in naive user
code.

Originally implemented and reviewed at https://github.com/python/typing/pull/470.
(cherry picked from commit f350a268a7071ce7d7a5bb86a9b1229782d4963b)
Lib/test/mod_generics_cache.py
Lib/test/test_typing.py
Lib/typing.py
Misc/NEWS.d/next/Library/2017-09-14-11-02-56.bpo-28556.EUOiYs.rst [new file with mode: 0644]