[Python-Dev] PEP 479 and asyncio (original) (raw)
Chris Angelico rosuav at gmail.com
Fri Nov 28 10:27:53 CET 2014
- Previous message: [Python-Dev] PEP 479 and asyncio
- Next message: [Python-Dev] advice needed: best approach to enabling "metamodules"?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] PEP 479 and asyncio
- Next message: [Python-Dev] advice needed: best approach to enabling "metamodules"?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]