__init__.py 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. __version__ = "3.13.3"
  2. from typing import TYPE_CHECKING, Tuple
  3. from . import hdrs as hdrs
  4. from .client import (
  5. BaseConnector,
  6. ClientConnectionError,
  7. ClientConnectionResetError,
  8. ClientConnectorCertificateError,
  9. ClientConnectorDNSError,
  10. ClientConnectorError,
  11. ClientConnectorSSLError,
  12. ClientError,
  13. ClientHttpProxyError,
  14. ClientOSError,
  15. ClientPayloadError,
  16. ClientProxyConnectionError,
  17. ClientRequest,
  18. ClientResponse,
  19. ClientResponseError,
  20. ClientSession,
  21. ClientSSLError,
  22. ClientTimeout,
  23. ClientWebSocketResponse,
  24. ClientWSTimeout,
  25. ConnectionTimeoutError,
  26. ContentTypeError,
  27. Fingerprint,
  28. InvalidURL,
  29. InvalidUrlClientError,
  30. InvalidUrlRedirectClientError,
  31. NamedPipeConnector,
  32. NonHttpUrlClientError,
  33. NonHttpUrlRedirectClientError,
  34. RedirectClientError,
  35. RequestInfo,
  36. ServerConnectionError,
  37. ServerDisconnectedError,
  38. ServerFingerprintMismatch,
  39. ServerTimeoutError,
  40. SocketTimeoutError,
  41. TCPConnector,
  42. TooManyRedirects,
  43. UnixConnector,
  44. WSMessageTypeError,
  45. WSServerHandshakeError,
  46. request,
  47. )
  48. from .client_middleware_digest_auth import DigestAuthMiddleware
  49. from .client_middlewares import ClientHandlerType, ClientMiddlewareType
  50. from .compression_utils import set_zlib_backend
  51. from .connector import (
  52. AddrInfoType as AddrInfoType,
  53. SocketFactoryType as SocketFactoryType,
  54. )
  55. from .cookiejar import CookieJar as CookieJar, DummyCookieJar as DummyCookieJar
  56. from .formdata import FormData as FormData
  57. from .helpers import BasicAuth, ChainMapProxy, ETag
  58. from .http import (
  59. HttpVersion as HttpVersion,
  60. HttpVersion10 as HttpVersion10,
  61. HttpVersion11 as HttpVersion11,
  62. WebSocketError as WebSocketError,
  63. WSCloseCode as WSCloseCode,
  64. WSMessage as WSMessage,
  65. WSMsgType as WSMsgType,
  66. )
  67. from .multipart import (
  68. BadContentDispositionHeader as BadContentDispositionHeader,
  69. BadContentDispositionParam as BadContentDispositionParam,
  70. BodyPartReader as BodyPartReader,
  71. MultipartReader as MultipartReader,
  72. MultipartWriter as MultipartWriter,
  73. content_disposition_filename as content_disposition_filename,
  74. parse_content_disposition as parse_content_disposition,
  75. )
  76. from .payload import (
  77. PAYLOAD_REGISTRY as PAYLOAD_REGISTRY,
  78. AsyncIterablePayload as AsyncIterablePayload,
  79. BufferedReaderPayload as BufferedReaderPayload,
  80. BytesIOPayload as BytesIOPayload,
  81. BytesPayload as BytesPayload,
  82. IOBasePayload as IOBasePayload,
  83. JsonPayload as JsonPayload,
  84. Payload as Payload,
  85. StringIOPayload as StringIOPayload,
  86. StringPayload as StringPayload,
  87. TextIOPayload as TextIOPayload,
  88. get_payload as get_payload,
  89. payload_type as payload_type,
  90. )
  91. from .payload_streamer import streamer as streamer
  92. from .resolver import (
  93. AsyncResolver as AsyncResolver,
  94. DefaultResolver as DefaultResolver,
  95. ThreadedResolver as ThreadedResolver,
  96. )
  97. from .streams import (
  98. EMPTY_PAYLOAD as EMPTY_PAYLOAD,
  99. DataQueue as DataQueue,
  100. EofStream as EofStream,
  101. FlowControlDataQueue as FlowControlDataQueue,
  102. StreamReader as StreamReader,
  103. )
  104. from .tracing import (
  105. TraceConfig as TraceConfig,
  106. TraceConnectionCreateEndParams as TraceConnectionCreateEndParams,
  107. TraceConnectionCreateStartParams as TraceConnectionCreateStartParams,
  108. TraceConnectionQueuedEndParams as TraceConnectionQueuedEndParams,
  109. TraceConnectionQueuedStartParams as TraceConnectionQueuedStartParams,
  110. TraceConnectionReuseconnParams as TraceConnectionReuseconnParams,
  111. TraceDnsCacheHitParams as TraceDnsCacheHitParams,
  112. TraceDnsCacheMissParams as TraceDnsCacheMissParams,
  113. TraceDnsResolveHostEndParams as TraceDnsResolveHostEndParams,
  114. TraceDnsResolveHostStartParams as TraceDnsResolveHostStartParams,
  115. TraceRequestChunkSentParams as TraceRequestChunkSentParams,
  116. TraceRequestEndParams as TraceRequestEndParams,
  117. TraceRequestExceptionParams as TraceRequestExceptionParams,
  118. TraceRequestHeadersSentParams as TraceRequestHeadersSentParams,
  119. TraceRequestRedirectParams as TraceRequestRedirectParams,
  120. TraceRequestStartParams as TraceRequestStartParams,
  121. TraceResponseChunkReceivedParams as TraceResponseChunkReceivedParams,
  122. )
  123. if TYPE_CHECKING:
  124. # At runtime these are lazy-loaded at the bottom of the file.
  125. from .worker import (
  126. GunicornUVLoopWebWorker as GunicornUVLoopWebWorker,
  127. GunicornWebWorker as GunicornWebWorker,
  128. )
  129. __all__: Tuple[str, ...] = (
  130. "hdrs",
  131. # client
  132. "AddrInfoType",
  133. "BaseConnector",
  134. "ClientConnectionError",
  135. "ClientConnectionResetError",
  136. "ClientConnectorCertificateError",
  137. "ClientConnectorDNSError",
  138. "ClientConnectorError",
  139. "ClientConnectorSSLError",
  140. "ClientError",
  141. "ClientHttpProxyError",
  142. "ClientOSError",
  143. "ClientPayloadError",
  144. "ClientProxyConnectionError",
  145. "ClientResponse",
  146. "ClientRequest",
  147. "ClientResponseError",
  148. "ClientSSLError",
  149. "ClientSession",
  150. "ClientTimeout",
  151. "ClientWebSocketResponse",
  152. "ClientWSTimeout",
  153. "ConnectionTimeoutError",
  154. "ContentTypeError",
  155. "Fingerprint",
  156. "FlowControlDataQueue",
  157. "InvalidURL",
  158. "InvalidUrlClientError",
  159. "InvalidUrlRedirectClientError",
  160. "NonHttpUrlClientError",
  161. "NonHttpUrlRedirectClientError",
  162. "RedirectClientError",
  163. "RequestInfo",
  164. "ServerConnectionError",
  165. "ServerDisconnectedError",
  166. "ServerFingerprintMismatch",
  167. "ServerTimeoutError",
  168. "SocketFactoryType",
  169. "SocketTimeoutError",
  170. "TCPConnector",
  171. "TooManyRedirects",
  172. "UnixConnector",
  173. "NamedPipeConnector",
  174. "WSServerHandshakeError",
  175. "request",
  176. # client_middleware
  177. "ClientMiddlewareType",
  178. "ClientHandlerType",
  179. # cookiejar
  180. "CookieJar",
  181. "DummyCookieJar",
  182. # formdata
  183. "FormData",
  184. # helpers
  185. "BasicAuth",
  186. "ChainMapProxy",
  187. "DigestAuthMiddleware",
  188. "ETag",
  189. "set_zlib_backend",
  190. # http
  191. "HttpVersion",
  192. "HttpVersion10",
  193. "HttpVersion11",
  194. "WSMsgType",
  195. "WSCloseCode",
  196. "WSMessage",
  197. "WebSocketError",
  198. # multipart
  199. "BadContentDispositionHeader",
  200. "BadContentDispositionParam",
  201. "BodyPartReader",
  202. "MultipartReader",
  203. "MultipartWriter",
  204. "content_disposition_filename",
  205. "parse_content_disposition",
  206. # payload
  207. "AsyncIterablePayload",
  208. "BufferedReaderPayload",
  209. "BytesIOPayload",
  210. "BytesPayload",
  211. "IOBasePayload",
  212. "JsonPayload",
  213. "PAYLOAD_REGISTRY",
  214. "Payload",
  215. "StringIOPayload",
  216. "StringPayload",
  217. "TextIOPayload",
  218. "get_payload",
  219. "payload_type",
  220. # payload_streamer
  221. "streamer",
  222. # resolver
  223. "AsyncResolver",
  224. "DefaultResolver",
  225. "ThreadedResolver",
  226. # streams
  227. "DataQueue",
  228. "EMPTY_PAYLOAD",
  229. "EofStream",
  230. "StreamReader",
  231. # tracing
  232. "TraceConfig",
  233. "TraceConnectionCreateEndParams",
  234. "TraceConnectionCreateStartParams",
  235. "TraceConnectionQueuedEndParams",
  236. "TraceConnectionQueuedStartParams",
  237. "TraceConnectionReuseconnParams",
  238. "TraceDnsCacheHitParams",
  239. "TraceDnsCacheMissParams",
  240. "TraceDnsResolveHostEndParams",
  241. "TraceDnsResolveHostStartParams",
  242. "TraceRequestChunkSentParams",
  243. "TraceRequestEndParams",
  244. "TraceRequestExceptionParams",
  245. "TraceRequestHeadersSentParams",
  246. "TraceRequestRedirectParams",
  247. "TraceRequestStartParams",
  248. "TraceResponseChunkReceivedParams",
  249. # workers (imported lazily with __getattr__)
  250. "GunicornUVLoopWebWorker",
  251. "GunicornWebWorker",
  252. "WSMessageTypeError",
  253. )
  254. def __dir__() -> Tuple[str, ...]:
  255. return __all__ + ("__doc__",)
  256. def __getattr__(name: str) -> object:
  257. global GunicornUVLoopWebWorker, GunicornWebWorker
  258. # Importing gunicorn takes a long time (>100ms), so only import if actually needed.
  259. if name in ("GunicornUVLoopWebWorker", "GunicornWebWorker"):
  260. try:
  261. from .worker import GunicornUVLoopWebWorker as guv, GunicornWebWorker as gw
  262. except ImportError:
  263. return None
  264. GunicornUVLoopWebWorker = guv # type: ignore[misc]
  265. GunicornWebWorker = gw # type: ignore[misc]
  266. return guv if name == "GunicornUVLoopWebWorker" else gw
  267. raise AttributeError(f"module {__name__} has no attribute {name}")