> On Sep 22, 2018, at 1:38 PM, Yury Selivanov <yselivanov...@gmail.com> wrote:
> 
> On Sat, Sep 22, 2018 at 3:11 PM Guido van Rossum <gu...@python.org> wrote:
> [..]
>> 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...
> 
> If it's possible to fix exec() to accept any Mapping (not just dicts),
> then we can create a proxy mapping for "Dataclass.__init__.__module__"
> module and everything would work as expected

FWIW, the locals() dict for exec() already accepts any mapping (not just dicts):

    >>> class M:
            def __getitem__(self, key):
                return key.upper()
            def __setitem__(self, key, value):
                print(f'{key!r}: {value!r}')
        
    >>> exec('a=b', globals(), M())
    'a': 'B'


Raymond
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to