Format: text/x-python
⬇ Download File (3.4 KB)
   1  from ._api import request, stream
   2  from ._async import (
   3      AsyncConnectionInterface,
   4      AsyncConnectionPool,
   5      AsyncHTTP2Connection,
   6      AsyncHTTP11Connection,
   7      AsyncHTTPConnection,
   8      AsyncHTTPProxy,
   9      AsyncSOCKSProxy,
  10  )
  11  from ._backends.base import (
  12      SOCKET_OPTION,
  13      AsyncNetworkBackend,
  14      AsyncNetworkStream,
  15      NetworkBackend,
  16      NetworkStream,
  17  )
  18  from ._backends.mock import AsyncMockBackend, AsyncMockStream, MockBackend, MockStream
  19  from ._backends.sync import SyncBackend
  20  from ._exceptions import (
  21      ConnectError,
  22      ConnectionNotAvailable,
  23      ConnectTimeout,
  24      LocalProtocolError,
  25      NetworkError,
  26      PoolTimeout,
  27      ProtocolError,
  28      ProxyError,
  29      ReadError,
  30      ReadTimeout,
  31      RemoteProtocolError,
  32      TimeoutException,
  33      UnsupportedProtocol,
  34      WriteError,
  35      WriteTimeout,
  36  )
  37  from ._models import URL, Origin, Proxy, Request, Response
  38  from ._ssl import default_ssl_context
  39  from ._sync import (
  40      ConnectionInterface,
  41      ConnectionPool,
  42      HTTP2Connection,
  43      HTTP11Connection,
  44      HTTPConnection,
  45      HTTPProxy,
  46      SOCKSProxy,
  47  )
  48  
  49  # The 'httpcore.AnyIOBackend' class is conditional on 'anyio' being installed.
  50  try:
  51      from ._backends.anyio import AnyIOBackend
  52  except ImportError:  # pragma: nocover
  53  
  54      class AnyIOBackend:  # type: ignore
  55          def __init__(self, *args, **kwargs):  # type: ignore
  56              msg = (
  57                  "Attempted to use 'httpcore.AnyIOBackend' but 'anyio' is not installed."
  58              )
  59              raise RuntimeError(msg)
  60  
  61  
  62  # The 'httpcore.TrioBackend' class is conditional on 'trio' being installed.
  63  try:
  64      from ._backends.trio import TrioBackend
  65  except ImportError:  # pragma: nocover
  66  
  67      class TrioBackend:  # type: ignore
  68          def __init__(self, *args, **kwargs):  # type: ignore
  69              msg = "Attempted to use 'httpcore.TrioBackend' but 'trio' is not installed."
  70              raise RuntimeError(msg)
  71  
  72  
  73  __all__ = [
  74      # top-level requests
  75      "request",
  76      "stream",
  77      # models
  78      "Origin",
  79      "URL",
  80      "Request",
  81      "Response",
  82      "Proxy",
  83      # async
  84      "AsyncHTTPConnection",
  85      "AsyncConnectionPool",
  86      "AsyncHTTPProxy",
  87      "AsyncHTTP11Connection",
  88      "AsyncHTTP2Connection",
  89      "AsyncConnectionInterface",
  90      "AsyncSOCKSProxy",
  91      # sync
  92      "HTTPConnection",
  93      "ConnectionPool",
  94      "HTTPProxy",
  95      "HTTP11Connection",
  96      "HTTP2Connection",
  97      "ConnectionInterface",
  98      "SOCKSProxy",
  99      # network backends, implementations
 100      "SyncBackend",
 101      "AnyIOBackend",
 102      "TrioBackend",
 103      # network backends, mock implementations
 104      "AsyncMockBackend",
 105      "AsyncMockStream",
 106      "MockBackend",
 107      "MockStream",
 108      # network backends, interface
 109      "AsyncNetworkStream",
 110      "AsyncNetworkBackend",
 111      "NetworkStream",
 112      "NetworkBackend",
 113      # util
 114      "default_ssl_context",
 115      "SOCKET_OPTION",
 116      # exceptions
 117      "ConnectionNotAvailable",
 118      "ProxyError",
 119      "ProtocolError",
 120      "LocalProtocolError",
 121      "RemoteProtocolError",
 122      "UnsupportedProtocol",
 123      "TimeoutException",
 124      "PoolTimeout",
 125      "ConnectTimeout",
 126      "ReadTimeout",
 127      "WriteTimeout",
 128      "NetworkError",
 129      "ConnectError",
 130      "ReadError",
 131      "WriteError",
 132  ]
 133  
 134  __version__ = "1.0.8"
 135  
 136  
 137  __locals = locals()
 138  for __name in __all__:
 139      # Exclude SOCKET_OPTION, it causes AttributeError on Python 3.14
 140      if not __name.startswith(("__", "SOCKET_OPTION")):
 141          setattr(__locals[__name], "__module__", "httpcore")  # noqa
 142