Source code for betty.asyncio

"""
Provide asynchronous programming utilities.
"""

from __future__ import annotations

from inspect import isawaitable
from typing import Awaitable, TypeVar

_T = TypeVar("_T")


[docs] async def ensure_await(value: Awaitable[_T] | _T) -> _T: """ Return a value, but await it first if it is awaitable. """ if isawaitable(value): return await value return value