[Python-Dev] PEP 3152 and yield from Future() (original) (raw)
Greg Ewing greg.ewing at canterbury.ac.nz
Fri Apr 24 10:34:26 CEST 2015
- Previous message (by thread): [Python-Dev] PEP 3152 and yield from Future()
- Next message (by thread): [Python-Dev] PEP 3152 and yield from Future()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Yury Selivanov wrote:
It's a common pattern in asyncio when functions return futures. It's OK later to refactor those functions to coroutines and vice-versa. This is a fundamental problem for PEP 3152 approach.
Hmmm. So you have an ordinary function that returns a future, and you want to turn it into a coroutine function, but still have it return a future in order to keep the API the same, is that right?
Turning it into a coroutine means you're going to have to change every site that calls it, so its API has already changed. Given that, I'm not sure what advantage there is in keeping the future- returning part of the API.
However, if we use the await()-cofunction idea, then a call to the initial version looks like
cocall await(f(x))
and after the refactoring it becomes
cocall await(cocall f(x))
That doesn't look so bad to me.
-- Greg
- Previous message (by thread): [Python-Dev] PEP 3152 and yield from Future()
- Next message (by thread): [Python-Dev] PEP 3152 and yield from Future()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]