Dennis Sweeney <[email protected]> added the comment:
Hi Stefan,
`from __future__ import annotations` only affects annotations -- just the
things after the colon. It makes it so that annotations are never evaluated, so
things like this work:
>>> from __future__ import annotations
>>> x: nonsense()()()()[other_nonsense](1<2>3)
The __future__ import is not a wholesale opt-in-to-all-new-typing-features,
it's just an opt-in-to-not-evaluate-annotations.
dict.__class_getitem__ (which is what gets called when you type dict[str, Any])
was not added at all until Python 3.9 (GH-18239), so if you want to *evaluate*
such expressions, you have to upgrade to 3.9+. In 3.8, use typing.Dict instead
-- 3.8 is no longer accepting new features.
Thanks for the report, but I'm closing this for now.
----------
nosy: +Dennis Sweeney
resolution: -> not a bug
stage: -> resolved
status: open -> closed
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45117>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com