On Thursday, September 7, 2017 9:05:58 AM EDT Ethan Furman wrote:
> The disagreement seems to be whether a LogicalContext should be
> created implicitly vs explicitly (or opt-out vs opt-in). As a user
> trying to track down a decimal context change not propagating, I
> would not suspect the above code of automatically creating a
> LogicalContext and isolating the change, whereas Greg's context
> manager version is abundantly clear.
> 
> The implicit vs explicit argument comes down, I think, to resource
> management: some resources in Python are automatically managed
> (memory), and some are not (files) -- which type should LCs be?

You are confusing resource management with the isolation mechanism.  PEP 
550 contextvars are analogous to threading.local(), which the PEP makes 
very clear from the outset.

threading.local(), the isolation mechanism, is *implicit*.  
decimal.localcontext() is an  *explicit* resource manager that relies on 
threading.local() magic.  PEP 550 simply provides a threading.local() 
alternative that works in tasks and generators.  That's it!


                             Elvis
_______________________________________________
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