[Python-Dev] PEP 550 v4

Greg Ewing greg.ewing at canterbury.ac.nz
Thu Sep 7 03:46:16 EDT 2017


Yury Selivanov wrote:
> The PEP gives you a Task Local Storage, where Task is:
> 
> 1. your single-threaded code
> 2. a generator
> 3. an async task
> 
> If you correctly use context managers, PEP 550 works intuitively and
> similar to how one would think that threading.local() should work.

My version works *more* similarly to thread-local storage,
IMO.

Currently, if you change the decimal context without using
a with-statement or something equivalent, you *don't*
expect the change to be confined to the current function
or sub-generator or async sub-task.

All I'm asking for is one consistent rule: If you want
a context change encapsulated, use a with-statement. If
you don't, don't.

Not only is this rule simpler than yours, it's the
*same* rule that we have now, so there is less for
users to learn.

-- 
Greg


More information about the Python-Dev mailing list