問題
asyncio.ensure_future
をコルーチンで使用すると、詳細な関数トレース情報が表示されません。
解決策
ensure_future
から作成された未来は、作成されたのと同じコルーチンで待ち受ける必要があります。たとえば、 Before のセクションでは、 await
が ensure_future
と一緒になっていないため、情報が欠落してしまいます。
Before:
import asyncio
async def foo(): ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)
後:
import asyncio
async def foo(): await ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)