try:
import anyio
import httpcore
- import httpcore.backends.asyncio
- import httpcore.backends.base
+
+ try:
+ _CoreAsyncNetworkBackend = httpcore.AsyncNetworkBackend
+ from httpcore._backends.anyio import AnyIOStream as _CoreAnyIOStream
+ except ImportError:
+ from httpcore.backends.base import (
+ AsyncNetworkBackend as _CoreAsyncNetworkBackend,
+ )
+ from httpcore.backends.asyncio import AsyncIOStream as _CoreAnyIOStream
import httpx
from dns.query import _compute_times, _expiration_for_this_attempt, _remaining
- class _NetworkBackend(httpcore.backends.base.AsyncNetworkBackend):
+ class _NetworkBackend(_CoreAsyncNetworkBackend):
def __init__(self, resolver, local_port, bootstrap_address, family):
super().__init__()
self._local_port = local_port
remote_port=port,
local_host=local_address,
)
- return httpcore.backends.asyncio.AsyncIOStream(stream)
+ return _CoreAnyIOStream(stream)
except Exception:
pass
raise httpcore.ConnectError
try:
import httpcore
- import httpcore.backends.base
- import httpcore.backends.trio
+
+ try:
+ _CoreAsyncNetworkBackend = httpcore.AsyncNetworkBackend
+ from httpcore._backends.trio import TrioStream as _CoreTrioStream
+ except ImportError:
+ from httpcore.backends.base import (
+ AsyncNetworkBackend as _CoreAsyncNetworkBackend,
+ )
+ from httpcore.backends.trio import TrioStream as _CoreTrioStream
import httpx
from dns.query import _compute_times, _expiration_for_this_attempt, _remaining
- class _NetworkBackend(httpcore.backends.base.AsyncNetworkBackend):
+ class _NetworkBackend(_CoreAsyncNetworkBackend):
def __init__(self, resolver, local_port, bootstrap_address, family):
super().__init__()
self._local_port = local_port
sock = await Backend().make_socket(
af, socket.SOCK_STREAM, 0, source, destination, timeout
)
- return httpcore.backends.trio.TrioStream(sock.stream)
+ return _CoreTrioStream(sock.stream)
except Exception:
continue
raise httpcore.ConnectError
pass
import httpcore
- import httpcore.backends.base
- import httpcore.backends.sync
- class _NetworkBackend(httpcore.backends.base.NetworkBackend):
+ try:
+ _CoreNetworkBackend = httpcore.NetworkBackend
+ from httpcore._backends.sync import SyncStream as _CoreSyncStream
+ except ImportError:
+ from httpcore.backends.base import NetworkBackend as _CoreNetworkBackend
+ from httpcore.backends.sync import SyncStream as _CoreSyncStream
+
+ class _NetworkBackend(_CoreNetworkBackend):
def __init__(self, resolver, local_port, bootstrap_address, family):
super().__init__()
self._local_port = local_port
dns.inet.low_level_address_tuple((address, port), af),
attempt_expiration,
)
- return httpcore.backends.sync.SyncStream(sock)
+ return _CoreSyncStream(sock)
except Exception:
pass
raise httpcore.ConnectError