Mercurial > repos > shellac > sam_consensus_v3
comparison env/lib/python3.9/site-packages/urllib3/exceptions.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4f3585e2f14b |
---|---|
1 from __future__ import absolute_import | |
2 | |
3 from .packages.six.moves.http_client import IncompleteRead as httplib_IncompleteRead | |
4 | |
5 # Base Exceptions | |
6 | |
7 | |
8 class HTTPError(Exception): | |
9 """Base exception used by this module.""" | |
10 | |
11 pass | |
12 | |
13 | |
14 class HTTPWarning(Warning): | |
15 """Base warning used by this module.""" | |
16 | |
17 pass | |
18 | |
19 | |
20 class PoolError(HTTPError): | |
21 """Base exception for errors caused within a pool.""" | |
22 | |
23 def __init__(self, pool, message): | |
24 self.pool = pool | |
25 HTTPError.__init__(self, "%s: %s" % (pool, message)) | |
26 | |
27 def __reduce__(self): | |
28 # For pickling purposes. | |
29 return self.__class__, (None, None) | |
30 | |
31 | |
32 class RequestError(PoolError): | |
33 """Base exception for PoolErrors that have associated URLs.""" | |
34 | |
35 def __init__(self, pool, url, message): | |
36 self.url = url | |
37 PoolError.__init__(self, pool, message) | |
38 | |
39 def __reduce__(self): | |
40 # For pickling purposes. | |
41 return self.__class__, (None, self.url, None) | |
42 | |
43 | |
44 class SSLError(HTTPError): | |
45 """Raised when SSL certificate fails in an HTTPS connection.""" | |
46 | |
47 pass | |
48 | |
49 | |
50 class ProxyError(HTTPError): | |
51 """Raised when the connection to a proxy fails.""" | |
52 | |
53 def __init__(self, message, error, *args): | |
54 super(ProxyError, self).__init__(message, error, *args) | |
55 self.original_error = error | |
56 | |
57 | |
58 class DecodeError(HTTPError): | |
59 """Raised when automatic decoding based on Content-Type fails.""" | |
60 | |
61 pass | |
62 | |
63 | |
64 class ProtocolError(HTTPError): | |
65 """Raised when something unexpected happens mid-request/response.""" | |
66 | |
67 pass | |
68 | |
69 | |
70 #: Renamed to ProtocolError but aliased for backwards compatibility. | |
71 ConnectionError = ProtocolError | |
72 | |
73 | |
74 # Leaf Exceptions | |
75 | |
76 | |
77 class MaxRetryError(RequestError): | |
78 """Raised when the maximum number of retries is exceeded. | |
79 | |
80 :param pool: The connection pool | |
81 :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool` | |
82 :param string url: The requested Url | |
83 :param exceptions.Exception reason: The underlying error | |
84 | |
85 """ | |
86 | |
87 def __init__(self, pool, url, reason=None): | |
88 self.reason = reason | |
89 | |
90 message = "Max retries exceeded with url: %s (Caused by %r)" % (url, reason) | |
91 | |
92 RequestError.__init__(self, pool, url, message) | |
93 | |
94 | |
95 class HostChangedError(RequestError): | |
96 """Raised when an existing pool gets a request for a foreign host.""" | |
97 | |
98 def __init__(self, pool, url, retries=3): | |
99 message = "Tried to open a foreign host with url: %s" % url | |
100 RequestError.__init__(self, pool, url, message) | |
101 self.retries = retries | |
102 | |
103 | |
104 class TimeoutStateError(HTTPError): | |
105 """Raised when passing an invalid state to a timeout""" | |
106 | |
107 pass | |
108 | |
109 | |
110 class TimeoutError(HTTPError): | |
111 """Raised when a socket timeout error occurs. | |
112 | |
113 Catching this error will catch both :exc:`ReadTimeoutErrors | |
114 <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`. | |
115 """ | |
116 | |
117 pass | |
118 | |
119 | |
120 class ReadTimeoutError(TimeoutError, RequestError): | |
121 """Raised when a socket timeout occurs while receiving data from a server""" | |
122 | |
123 pass | |
124 | |
125 | |
126 # This timeout error does not have a URL attached and needs to inherit from the | |
127 # base HTTPError | |
128 class ConnectTimeoutError(TimeoutError): | |
129 """Raised when a socket timeout occurs while connecting to a server""" | |
130 | |
131 pass | |
132 | |
133 | |
134 class NewConnectionError(ConnectTimeoutError, PoolError): | |
135 """Raised when we fail to establish a new connection. Usually ECONNREFUSED.""" | |
136 | |
137 pass | |
138 | |
139 | |
140 class EmptyPoolError(PoolError): | |
141 """Raised when a pool runs out of connections and no more are allowed.""" | |
142 | |
143 pass | |
144 | |
145 | |
146 class ClosedPoolError(PoolError): | |
147 """Raised when a request enters a pool after the pool has been closed.""" | |
148 | |
149 pass | |
150 | |
151 | |
152 class LocationValueError(ValueError, HTTPError): | |
153 """Raised when there is something wrong with a given URL input.""" | |
154 | |
155 pass | |
156 | |
157 | |
158 class LocationParseError(LocationValueError): | |
159 """Raised when get_host or similar fails to parse the URL input.""" | |
160 | |
161 def __init__(self, location): | |
162 message = "Failed to parse: %s" % location | |
163 HTTPError.__init__(self, message) | |
164 | |
165 self.location = location | |
166 | |
167 | |
168 class URLSchemeUnknown(LocationValueError): | |
169 """Raised when a URL input has an unsupported scheme.""" | |
170 | |
171 def __init__(self, scheme): | |
172 message = "Not supported URL scheme %s" % scheme | |
173 super(URLSchemeUnknown, self).__init__(message) | |
174 | |
175 self.scheme = scheme | |
176 | |
177 | |
178 class ResponseError(HTTPError): | |
179 """Used as a container for an error reason supplied in a MaxRetryError.""" | |
180 | |
181 GENERIC_ERROR = "too many error responses" | |
182 SPECIFIC_ERROR = "too many {status_code} error responses" | |
183 | |
184 | |
185 class SecurityWarning(HTTPWarning): | |
186 """Warned when performing security reducing actions""" | |
187 | |
188 pass | |
189 | |
190 | |
191 class SubjectAltNameWarning(SecurityWarning): | |
192 """Warned when connecting to a host with a certificate missing a SAN.""" | |
193 | |
194 pass | |
195 | |
196 | |
197 class InsecureRequestWarning(SecurityWarning): | |
198 """Warned when making an unverified HTTPS request.""" | |
199 | |
200 pass | |
201 | |
202 | |
203 class SystemTimeWarning(SecurityWarning): | |
204 """Warned when system time is suspected to be wrong""" | |
205 | |
206 pass | |
207 | |
208 | |
209 class InsecurePlatformWarning(SecurityWarning): | |
210 """Warned when certain TLS/SSL configuration is not available on a platform.""" | |
211 | |
212 pass | |
213 | |
214 | |
215 class SNIMissingWarning(HTTPWarning): | |
216 """Warned when making a HTTPS request without SNI available.""" | |
217 | |
218 pass | |
219 | |
220 | |
221 class DependencyWarning(HTTPWarning): | |
222 """ | |
223 Warned when an attempt is made to import a module with missing optional | |
224 dependencies. | |
225 """ | |
226 | |
227 pass | |
228 | |
229 | |
230 class ResponseNotChunked(ProtocolError, ValueError): | |
231 """Response needs to be chunked in order to read it as chunks.""" | |
232 | |
233 pass | |
234 | |
235 | |
236 class BodyNotHttplibCompatible(HTTPError): | |
237 """ | |
238 Body should be :class:`http.client.HTTPResponse` like | |
239 (have an fp attribute which returns raw chunks) for read_chunked(). | |
240 """ | |
241 | |
242 pass | |
243 | |
244 | |
245 class IncompleteRead(HTTPError, httplib_IncompleteRead): | |
246 """ | |
247 Response length doesn't match expected Content-Length | |
248 | |
249 Subclass of :class:`http.client.IncompleteRead` to allow int value | |
250 for ``partial`` to avoid creating large objects on streamed reads. | |
251 """ | |
252 | |
253 def __init__(self, partial, expected): | |
254 super(IncompleteRead, self).__init__(partial, expected) | |
255 | |
256 def __repr__(self): | |
257 return "IncompleteRead(%i bytes read, %i more expected)" % ( | |
258 self.partial, | |
259 self.expected, | |
260 ) | |
261 | |
262 | |
263 class InvalidChunkLength(HTTPError, httplib_IncompleteRead): | |
264 """Invalid chunk length in a chunked response.""" | |
265 | |
266 def __init__(self, response, length): | |
267 super(InvalidChunkLength, self).__init__( | |
268 response.tell(), response.length_remaining | |
269 ) | |
270 self.response = response | |
271 self.length = length | |
272 | |
273 def __repr__(self): | |
274 return "InvalidChunkLength(got length %r, %i bytes read)" % ( | |
275 self.length, | |
276 self.partial, | |
277 ) | |
278 | |
279 | |
280 class InvalidHeader(HTTPError): | |
281 """The header provided was somehow invalid.""" | |
282 | |
283 pass | |
284 | |
285 | |
286 class ProxySchemeUnknown(AssertionError, URLSchemeUnknown): | |
287 """ProxyManager does not support the supplied scheme""" | |
288 | |
289 # TODO(t-8ch): Stop inheriting from AssertionError in v2.0. | |
290 | |
291 def __init__(self, scheme): | |
292 # 'localhost' is here because our URL parser parses | |
293 # localhost:8080 -> scheme=localhost, remove if we fix this. | |
294 if scheme == "localhost": | |
295 scheme = None | |
296 if scheme is None: | |
297 message = "Proxy URL had no scheme, should start with http:// or https://" | |
298 else: | |
299 message = ( | |
300 "Proxy URL had unsupported scheme %s, should use http:// or https://" | |
301 % scheme | |
302 ) | |
303 super(ProxySchemeUnknown, self).__init__(message) | |
304 | |
305 | |
306 class ProxySchemeUnsupported(ValueError): | |
307 """Fetching HTTPS resources through HTTPS proxies is unsupported""" | |
308 | |
309 pass | |
310 | |
311 | |
312 class HeaderParsingError(HTTPError): | |
313 """Raised by assert_header_parsing, but we convert it to a log.warning statement.""" | |
314 | |
315 def __init__(self, defects, unparsed_data): | |
316 message = "%s, unparsed data: %r" % (defects or "Unknown", unparsed_data) | |
317 super(HeaderParsingError, self).__init__(message) | |
318 | |
319 | |
320 class UnrewindableBodyError(HTTPError): | |
321 """urllib3 encountered an error when trying to rewind a body""" | |
322 | |
323 pass |