Opening for visibility. Issue on bugs.python.org: https://bugs.python.org/issue45166. Feel free to close here or there 😄
Originally reported and investigated here: mkdocstrings/mkdocstrings#314
# final.py from __future__ import annotations from typing import Final, get_type_hints name: Final[str] = "final" class Class: value: Final = 3000 get_type_hints(Class)
Run python final.py, and you'll get this traceback:
Traceback (most recent call last): File "final.py", line 11, in <module> get_type_hints(Class) File "/.../lib/python3.8/typing.py", line 1232, in get_type_hints value = _eval_type(value, base_globals, localns) File "/.../lib/python3.8/typing.py", line 270, in _eval_type return t._evaluate(globalns, localns) File "/.../lib/python3.8/typing.py", line 517, in _evaluate self.__forward_value__ = _type_check( File "/.../lib/python3.8/typing.py", line 145, in _type_check raise TypeError(f"Plain {arg} is not valid as type argument") TypeError: Plain typing.Final is not valid as type argument
Now comment the get_type_hints call, launch a Python interpreter, and enter these commands:
>>> import final >>> from typing import get_type_hints >>> get_type_hints(final)
And you'll get this traceback:
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/.../lib/python3.9/typing.py", line 1449, in get_type_hints value = _eval_type(value, globalns, localns) File "/.../lib/python3.9/typing.py", line 283, in _eval_type return t._evaluate(globalns, localns, recursive_guard) File "/.../lib/python3.9/typing.py", line 538, in _evaluate type_ =_type_check( File "/.../lib/python3.9/typing.py", line 149, in _type_check raise TypeError(f"{arg} is not valid as type argument") TypeError: typing.Final[str] is not valid as type argument
I was able to replicate in 3.8, 3.9, 3.10 and 3.11. The annotations future is not available in 3.7 or lower.
Thanks, bpo is a good place for this :-)
Ha! That's what bpo means 😲
Let's see if this fixes your issue python/cpython#28279
Thanks @sobolevn! Nice to see you here 😄
@sobolevn's fix was merged and backported, I think we can close the issue 🙂 Thanks everyone!
Activity
hauntsaninja commented on Sep 10, 2021
Thanks, bpo is a good place for this :-)
pawamoy commented on Sep 10, 2021
Ha! That's what bpo means 😲
sobolevn commented on Sep 10, 2021
Let's see if this fixes your issue python/cpython#28279
pawamoy commented on Sep 10, 2021
Thanks @sobolevn! Nice to see you here 😄
pawamoy commented on Sep 26, 2021
@sobolevn's fix was merged and backported, I think we can close the issue 🙂
Thanks everyone!