diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/litestar/utils/compat.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/litestar/utils/compat.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/litestar/utils/compat.py b/venv/lib/python3.11/site-packages/litestar/utils/compat.py new file mode 100644 index 0000000..384db76 --- /dev/null +++ b/venv/lib/python3.11/site-packages/litestar/utils/compat.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, TypeVar + +from litestar.types import Empty, EmptyType + +__all__ = ("async_next",) + + +if TYPE_CHECKING: + from typing import Any, AsyncGenerator + +T = TypeVar("T") +D = TypeVar("D") + +try: + async_next = anext # type: ignore[name-defined] +except NameError: + + async def async_next(gen: AsyncGenerator[T, Any], default: D | EmptyType = Empty) -> T | D: + """Backwards compatibility shim for Python<3.10.""" + try: + return await gen.__anext__() + except StopAsyncIteration as exc: + if default is not Empty: + return default + raise exc |