[Python-Dev] async/await in Python; v2

Yury Selivanov yselivanov.ml at gmail.com
Wed Apr 22 20:45:00 CEST 2015


Andrew,

On 2015-04-22 2:32 PM, Andrew Svetlov wrote:
> For now I can use mix asyncio.coroutines and `async def` functions, I
> mean I can write `await f()` inside async def to call
> asyncio.coroutine `f` and vise versa: I can use `yield from g()`
> inside asyncio.coroutine to call `async def g(): ...`.

That's another good point that I forgot to add to the list.
Thanks for bringing this up.

>
> If we forbid to call `async def` from regualr code how asyncio should
> work? I'd like to push `async def` everywhere in asyncio API where
> asyncio.coroutine required.

You'll have to use a wrapper that will do the following:

async def foo():
     return 'spam'

@asyncio.coroutine
def bar():
     what = yield from foo.__await__(foo, *args, **kwargs)
     # OR:
     what = yield from await_call(foo, *args, **kwargs)

Thanks,
Yury


More information about the Python-Dev mailing list