On Wed, Aug 30, 2017 at 2:36 AM, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:
Yury Selivanov wrote:
While we want "yield from" to have semantics close to a function call,

That's not what I said! I said that "yield from foo()" should
have semantics close to a function call. If you separate the
"yield from" from the "foo()", then of course you can get
different behaviours.

But that's beside the point, because I'm not suggesting
that generators should behave differently depending on when
or if you use "yield from" on them.

For (1) we want the context change to be isolated.  For (2) you say
that the context change should propagate to the caller.

No, I'm saying that the context change should *always*
propagate to the caller, unless you do something explicit
within the generator to prevent it.

I have some ideas on what that something might be, which
I'll post later.


​FYI, I've been sketching an alternative solution that addresses these kinds of things. I've been hesitant to post ​about it, partly because of the PEP550-based workarounds that Nick, Nathaniel, Yury etc. have been describing, and partly because that might be a major distraction from other useful discussions, especially because I wasn't completely sure yet about whether my approach has some fatal flaw compared to PEP 550 ;).


—Koos


--
+ Koos Zevenhoven + http://twitter.com/k7hoven +