%PDF- %PDF-
| Direktori : /lib/python3/dist-packages/httpcore/backends/ |
| Current File : //lib/python3/dist-packages/httpcore/backends/auto.py |
import sniffio
from .base import AsyncNetworkBackend, AsyncNetworkStream
class AutoBackend(AsyncNetworkBackend):
async def _init_backend(self) -> None:
if not (hasattr(self, "_backend")):
backend = sniffio.current_async_library()
if backend == "trio":
from .trio import TrioBackend
self._backend: AsyncNetworkBackend = TrioBackend()
else:
from .asyncio import AsyncIOBackend
self._backend = AsyncIOBackend()
async def connect_tcp(
self, host: str, port: int, timeout: float = None, local_address: str = None
) -> AsyncNetworkStream:
await self._init_backend()
return await self._backend.connect_tcp(
host, port, timeout=timeout, local_address=local_address
)
async def connect_unix_socket(
self, path: str, timeout: float = None
) -> AsyncNetworkStream: # pragma: nocover
await self._init_backend()
return await self._backend.connect_unix_socket(path, timeout=timeout)
async def sleep(self, seconds: float) -> None: # pragma: nocover
await self._init_backend()
return await self._backend.sleep(seconds)