diff --git a/venv/Lib/site-packages/uvicorn/loops/__init__.py b/venv/Lib/site-packages/uvicorn/loops/__init__.py new file mode 100644 index 0000000..06d7405 Binary files /dev/null and b/venv/Lib/site-packages/uvicorn/loops/__init__.py differ diff --git a/venv/Lib/site-packages/uvicorn/loops/asyncio.py b/venv/Lib/site-packages/uvicorn/loops/asyncio.py new file mode 100644 index 0000000..ad6121e --- /dev/null +++ b/venv/Lib/site-packages/uvicorn/loops/asyncio.py @@ -0,0 +1,11 @@ +from __future__ import annotations + +import asyncio +import sys +from collections.abc import Callable + + +def asyncio_loop_factory(use_subprocess: bool = False) -> Callable[[], asyncio.AbstractEventLoop]: + if sys.platform == "win32" and not use_subprocess: + return asyncio.ProactorEventLoop + return asyncio.SelectorEventLoop diff --git a/venv/Lib/site-packages/uvicorn/loops/auto.py b/venv/Lib/site-packages/uvicorn/loops/auto.py new file mode 100644 index 0000000..1908399 --- /dev/null +++ b/venv/Lib/site-packages/uvicorn/loops/auto.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +import asyncio +from collections.abc import Callable + + +def auto_loop_factory(use_subprocess: bool = False) -> Callable[[], asyncio.AbstractEventLoop]: + try: + import uvloop # noqa + except ImportError: # pragma: no cover + from uvicorn.loops.asyncio import asyncio_loop_factory as loop_factory + + return loop_factory(use_subprocess=use_subprocess) + else: # pragma: no cover + from uvicorn.loops.uvloop import uvloop_loop_factory + + return uvloop_loop_factory(use_subprocess=use_subprocess) diff --git a/venv/Lib/site-packages/uvicorn/loops/uvloop.py b/venv/Lib/site-packages/uvicorn/loops/uvloop.py new file mode 100644 index 0000000..c6692c5 --- /dev/null +++ b/venv/Lib/site-packages/uvicorn/loops/uvloop.py @@ -0,0 +1,10 @@ +from __future__ import annotations + +import asyncio +from collections.abc import Callable + +import uvloop + + +def uvloop_loop_factory(use_subprocess: bool = False) -> Callable[[], asyncio.AbstractEventLoop]: + return uvloop.new_event_loop