On Fri, 25 Aug 2017 15:36:55 +1000
Nick Coghlan <ncogh...@gmail.com> wrote:
> On 24 August 2017 at 23:52, Barry Warsaw <ba...@python.org> wrote:
> > Guido van Rossum wrote:  
> >> On Tue, Aug 22, 2017 at 7:12 PM, Nathaniel Smith <n...@pobox.com> wrote:
> >>
> >> I worry that that's going to lead more people astray thinking this has
> >> something to do with contextlib, which it really doesn't (it's much more
> >> closely related to threading.local()).  
> >
> > This is my problem with using "Context" for this PEP.  Although I can't
> > keep up with all names being thrown around, it seems to me that in
> > Python we already have a well-established meaning for "contexts" --
> > context managers, and the protocols they implement as they participate
> > in `with` statements.  We have contextlib which reinforces this.  What's
> > being proposed in PEP 550 is so far removed from this concept that I
> > think it's just going to cause confusion (well, it does in me anyway!).  
> 
> While I understand the concern, I think context locals and contextlib
> are more closely related than folks realise, as one of the main
> problems that the PEP is aiming to solve is that with statements (and
> hence context managers) *do not work as expected* when their body
> includes "yield", "yield from" or "await" .

If I write:

def read_chunks(fn, chunk_size=8192):
    with open(fn, "rb") as f:
        while True:
            data = f.read(chunk_size)
            if not data:
               break
            yield data

The "with" statement here works fine even though its body includes a
"yield" (and if there had been an added "await" things would probably
not be different).

The class of context managers you're talking about is in my experience a
small minority (I've hardly ever used them myself, and I don't think I
have ever written one).  So I don't think the two concepts are as
closely related as you seem to think.

That said, I also think "context" is the best term (barring
"environment" perhaps) to describe what PEP 550 is talking about.
Qualifying it ("logical", etc.) helps disambiguate

Regards

Antoine.


_______________________________________________
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