[Python-Dev] Postponed annotations break inspection of dataclasses

Guido van Rossum guido at python.org
Sat Sep 22 15:09:22 EDT 2018


On Sat, Sep 22, 2018 at 11:29 AM Eric V. Smith <eric at trueblade.com> wrote:

> I think this problem is endemic to get_type_hints(). I've never
> understood how you're supposed to use the globals and locals arguments
> to it, but this works:
>
> print(get_type_hints(Bar.__init__, globals()))
>
> as does:
>
> print(get_type_hints(Bar.__init__, Bar.__module__))
>
> But that seems like you'd have to know a lot about how a class were
> declared in order to call get_type_hints on it. I'm not sure __module__
> is always correct (but again, I haven't really thought about it).
>

Still, I wonder if there's a tweak possible of the globals and locals used
when exec()'ing the function definitions in dataclasses.py, so that
get_type_hints() gets the right globals for this use case.

It's really tough to be at the intersection of three PEPs...

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180922/ae1c4611/attachment.html>


More information about the Python-Dev mailing list