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