]> granicus.if.org Git - python/commit
bpo-28556: typing.get_type_hints: better globalns for classes and modules (#3582)
authorŁukasz Langa <lukasz@langa.pl>
Thu, 14 Sep 2017 18:33:00 +0000 (14:33 -0400)
committerGitHub <noreply@github.com>
Thu, 14 Sep 2017 18:33:00 +0000 (14:33 -0400)
commitf350a268a7071ce7d7a5bb86a9b1229782d4963b
tree04b38394dea9be76bea00f41b488c3e3a223dd34
parentd393c1b227f22fb9af66040b2b367c99a4d1fa9a
bpo-28556: typing.get_type_hints: better globalns for classes and modules (#3582)

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.
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]