awaitables
Awaitables are objects that can be used with the await expression in asynchronous programming. In Python, an awaitable is any object that can be paused and resumed by an event loop until it yields a result. The typical kinds are coroutines (created by async def), Future objects, and Task objects, as well as any object that implements the __await__ method.
Mechanics: When an await expression is evaluated, the surrounding coroutine suspends and control returns to the
Creating and awaiting: A coroutine object is created by calling an async function. A Future represents a
Checking and utility: The inspect.isawaitable() function can be used to test if an object can be awaited.
Notes: Awaitables are central to asynchronous programming in Python and are not limited to a single type.