Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
Bug description:
from __future__importannotationsimporttypingclassTest[M]:attr:Mprint(typing.get_type_hints(Test))
This fails with a NameError:
$ poetry run python3 pep_695_get_type_hints.pyTraceback (most recent call last): File "/home/mjog/pep_695_get_type_hints.py", line 8, in <module> print(typing.get_type_hints(Test)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/typing.py", line 2197, in get_type_hints value = _eval_type(value, base_globals, base_locals) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/typing.py", line 393, in _eval_type return t._evaluate(globalns, localns, recursive_guard) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/typing.py", line 900, in _evaluate eval(self.__forward_code__, globalns, localns), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 1, in <module>NameError: name 'M' is not definedAlthoughget_type_hints does not work with imported imported type aliases, this is not imported, so I would expect it to work. Further, the documentation for the function indicates using PEP 563 should /help/, but in this case it actually causes an error.
FWIW, removing the PEP 563 import works fine, giving:
{'attr': M}Python version:
$ poetry run python3 --versionPython 3.12.0CPython versions tested on:
3.12
Operating systems tested on:
Linux
Linked PRs
- gh-114053: Fix bad interaction of PEP-695, PEP-563 and
get_type_hints#118009 - [3.12] gh-114053: Fix bad interaction of PEP-695, PEP-563 and
get_type_hints(#118009) #118104 - gh-114053: Fix bad interaction of PEP 695, PEP 563 and
inspect.get_annotations#120270 - gh-114053: Fix another edge case involving
get_type_hints, PEP 695 and PEP 563 #120272 - [3.13] gh-114053: Fix bad interaction of PEP 695, PEP 563 and
inspect.get_annotations(GH-120270) #120474 - [3.12] gh-114053: Fix bad interaction of PEP 695, PEP 563 and
inspect.get_annotations(GH-120270) #120475 - [3.13] gh-114053: Fix another edge case involving
get_type_hints, PEP 695 and PEP 563 (GH-120272) #121003 - [3.12] gh-114053: Fix another edge case involving
get_type_hints, PEP 695 and PEP 563 (GH-120272) #121004