import asyncio class NonTrueAwaitable: def __init__(self, inner): self.inner = inner def __bool__(self) -> bool: return False def __await__(self): val = yield from self.inner return val def intermediary(): async def inner(): await asyncio.sleep(0.4) return 42 return NonTrueAwaitable(inner()) async def run(): return await intermediary() print(asyncio.get_event_loop().run_until_complete(run()))