1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
# Copyright 2022 Amethyst Reese
# Licensed under the MIT license
import inspect
import sys
from typing import Awaitable, Union
from .types import T
if sys.version_info < (3, 8): # pragma: no cover
from typing_extensions import Protocol
else: # pragma: no cover
from typing import Protocol
class Orderable(Protocol): # pragma: no cover
def __lt__(self, other): ...
def __gt__(self, other): ...
async def maybe_await(object: Union[Awaitable[T], T]) -> T:
if inspect.isawaitable(object):
return await object # type: ignore
return object # type: ignore
|