22 lines
469 B
Python
22 lines
469 B
Python
# Copyright 2022 Amethyst Reese
|
|
# Licensed under the MIT license
|
|
|
|
import inspect
|
|
from collections.abc import Awaitable
|
|
|
|
from typing import Protocol, Union
|
|
|
|
from .types import T
|
|
|
|
|
|
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
|