[Python-ideas] PEP draft: context variables
ethan at stoneleaf.us
Fri Oct 13 13:45:35 EDT 2017
On 10/13/2017 09:48 AM, Steve Dower wrote:
> On 13Oct2017 0941, Yury Selivanov wrote:
>> Actually, capturing context at the moment of coroutine creation (in
>> PEP 550 v1 semantics) will not work at all. Async context managers
>> will break.
>> class AC:
>> async def __aenter__(self):
>> ^ If the context is captured when coroutines are instantiated,
>> __aenter__ won't be able to set context variables and thus affect the
>> code it wraps. That's why coroutines shouldn't capture context when
>> created, nor they should isolate context. It's a job of async Task.
> Then make __aenter__/__aexit__ when called by "async with" an exception to the normal semantics?
> It seems simpler to have one specially named and specially called function be special, rather than make the semantics
> more complicated for all functions.
+1. I think that would make it much more usable by those of us who are not experts.
More information about the Python-ideas