On Fri, Nov 28, 2014 at 8:18 PM, Victor Stinner <victor.stinner at gmail.com> wrote: > 2014-11-28 10:12 GMT+01:00 Greg Ewing <greg.ewing at canterbury.ac.nz>: >> I don't understand. If I'm interpreting PEP 479 correctly, in >> 'x = yield from foo', a StopIteration raised by foo.__next__() >> doesn't get turned into a RuntimeError > > The Trollius coroutine uses "raise Return(value)" which is basically a > "raise StopIteraton(value)", and this is forbidden by the PEP 479. > With the PEP 479, the StopIteration is replaced with a RuntimeError. The question, I guess, is: Why can't it be translated into "return value"? One answer is: Because that's not legal in Python 2.7. And I can't respond to that answer, unfortunately. That's the one major backward compat issue. (Another answer may be "Because it would require changes to many intermediate generators, not all of which are under our control". If that's the issue, then it'll simply be a matter of telling people "When you upgrade to Python 3.6, you will start to see warnings unless you make this change".) ChrisA
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4