[Python-Dev] PEP 550 v3 naming

Antoine Pitrou solipsis at pitrou.net
Thu Aug 24 04:22:33 EDT 2017


On Wed, 23 Aug 2017 14:27:55 -0400
Yury Selivanov <yselivanov.ml at gmail.com> wrote:
> 
> Yeah.. I like TaskContext when it's applied to asynchronous code. It
> doesn't really work for generators because we never refer to
> generators as tasks.
> 
> Out of what was proposed so far to replace Logical Context:
> 
> 1. DynamicContext: close to "dynamic scoping", but tries to avoid
> mentioning "scopes". There are only a few languages where dynamic
> scoping is implemented, so people are generally not aware of it.
> 
> 2. ContextFrame and all frame-related names: implies that EC is
> somehow implemented on top of frames or is frame-specific (which is
> not always true).
> 
> 3. ImplicitContext: covers one specific property observed from
> specific examples.  Context in PEP 550 is managed explicitly in some
> cases. There are many use cases when API users will be working with it
> explicitly too (to wrirte/read data from it). FWIW I believe that
> "ExplicitContext" would be more accurate than "ImplicitContext".
> 
> 4. LocalContext: we use "local" to describe local variables and
> scoping in Python, we want to avoid any confusion here.
> 
> 5. TaskContext: works for asynchronous tasks, but not for generators.
> 
> I don't think that replacing LogicalContext with any name in this list
> will make any improvement.

I think you have a point.  Though every time I want to type "logical
context" it seems my fingers slip and type "local context" instead :-)

Now remains the question of why the logical context stack is named
"execution context" and not "logical context stack" (or "logical
context chain" to keep the ChainMap analogy) :-)

Regards

Antoine.


More information about the Python-Dev mailing list