[Python-Dev] PEP 492: async/await in Python; v3 (original) (raw)

Yury Selivanov yselivanov.ml at gmail.com
Thu Apr 30 00:58:43 CEST 2015


Greg,

On 2015-04-29 6:46 PM, Greg Ewing wrote:

Yury Selivanov wrote:

Won't that prevent some existing generator-based coroutines (ones not decorated with @coroutine) from calling ones implemented with 'async def'?

It would. But that's not a backwards compatibility issue. It seems to go against Guido's desire for the new way to be a 100% drop-in replacement for the old way. There are various ways that old code can end up calling new code -- subclassing, callbacks, etc. It also means that if person A writes a library in the new style, then person B can't make use of it without upgrading all of their code to the new style as well. The new style will thus be "infectious" in a sense. I suppose it's up to Guido to decide whether it's a good or bad infection. But the same kind of reasoning seemed to be at least partly behind the rejection of PEP 3152.

It's a drop-in replacement ;) If you run your existing code - it will 100% work just fine.

There is a probability that when you start applying new syntax something could go wrong -- you're right here.

I'm updating the PEP to explain this clearly, and let's see what Guido thinks about that.

My opinion is that this is a solvable problem with a clear guidelines on how to transition existing code to the new style.

Thanks, Yury



More information about the Python-Dev mailing list