comparison planemo/lib/python3.7/site-packages/urllib3/exceptions.py @ 1:56ad4e20f292 draft

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