auto.py 566 B

1234567891011121314151617
  1. from __future__ import annotations
  2. import asyncio
  3. from collections.abc import Callable
  4. def auto_loop_factory(use_subprocess: bool = False) -> Callable[[], asyncio.AbstractEventLoop]:
  5. try:
  6. import uvloop # noqa
  7. except ImportError: # pragma: no cover
  8. from uvicorn.loops.asyncio import asyncio_loop_factory as loop_factory
  9. return loop_factory(use_subprocess=use_subprocess)
  10. else: # pragma: no cover
  11. from uvicorn.loops.uvloop import uvloop_loop_factory
  12. return uvloop_loop_factory(use_subprocess=use_subprocess)