Dennis Sweeney <sweeney.dennis...@gmail.com> 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 <rep...@bugs.python.org>
<https://bugs.python.org/issue45117>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to