You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
566 B
18 lines
566 B
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)
|