Index: third_party/google-endpoints/requests/exceptions.py |
diff --git a/third_party/google-endpoints/requests/exceptions.py b/third_party/google-endpoints/requests/exceptions.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0658e7ec5099072633767b69e646b6827094ab12 |
--- /dev/null |
+++ b/third_party/google-endpoints/requests/exceptions.py |
@@ -0,0 +1,116 @@ |
+# -*- coding: utf-8 -*- |
+ |
+""" |
+requests.exceptions |
+~~~~~~~~~~~~~~~~~~~ |
+ |
+This module contains the set of Requests' exceptions. |
+""" |
+from .packages.urllib3.exceptions import HTTPError as BaseHTTPError |
+ |
+ |
+class RequestException(IOError): |
+ """There was an ambiguous exception that occurred while handling your |
+ request. |
+ """ |
+ |
+ def __init__(self, *args, **kwargs): |
+ """Initialize RequestException with `request` and `response` objects.""" |
+ response = kwargs.pop('response', None) |
+ self.response = response |
+ self.request = kwargs.pop('request', None) |
+ if (response is not None and not self.request and |
+ hasattr(response, 'request')): |
+ self.request = self.response.request |
+ super(RequestException, self).__init__(*args, **kwargs) |
+ |
+ |
+class HTTPError(RequestException): |
+ """An HTTP error occurred.""" |
+ |
+ |
+class ConnectionError(RequestException): |
+ """A Connection error occurred.""" |
+ |
+ |
+class ProxyError(ConnectionError): |
+ """A proxy error occurred.""" |
+ |
+ |
+class SSLError(ConnectionError): |
+ """An SSL error occurred.""" |
+ |
+ |
+class Timeout(RequestException): |
+ """The request timed out. |
+ |
+ Catching this error will catch both |
+ :exc:`~requests.exceptions.ConnectTimeout` and |
+ :exc:`~requests.exceptions.ReadTimeout` errors. |
+ """ |
+ |
+ |
+class ConnectTimeout(ConnectionError, Timeout): |
+ """The request timed out while trying to connect to the remote server. |
+ |
+ Requests that produced this error are safe to retry. |
+ """ |
+ |
+ |
+class ReadTimeout(Timeout): |
+ """The server did not send any data in the allotted amount of time.""" |
+ |
+ |
+class URLRequired(RequestException): |
+ """A valid URL is required to make a request.""" |
+ |
+ |
+class TooManyRedirects(RequestException): |
+ """Too many redirects.""" |
+ |
+ |
+class MissingSchema(RequestException, ValueError): |
+ """The URL schema (e.g. http or https) is missing.""" |
+ |
+ |
+class InvalidSchema(RequestException, ValueError): |
+ """See defaults.py for valid schemas.""" |
+ |
+ |
+class InvalidURL(RequestException, ValueError): |
+ """The URL provided was somehow invalid.""" |
+ |
+ |
+class InvalidHeader(RequestException, ValueError): |
+ """The header value provided was somehow invalid.""" |
+ |
+ |
+class ChunkedEncodingError(RequestException): |
+ """The server declared chunked encoding but sent an invalid chunk.""" |
+ |
+ |
+class ContentDecodingError(RequestException, BaseHTTPError): |
+ """Failed to decode response content""" |
+ |
+ |
+class StreamConsumedError(RequestException, TypeError): |
+ """The content for this response was already consumed""" |
+ |
+ |
+class RetryError(RequestException): |
+ """Custom retries logic failed""" |
+ |
+class UnrewindableBodyError(RequestException): |
+ """Requests encountered an error when trying to rewind a body""" |
+ |
+# Warnings |
+ |
+ |
+class RequestsWarning(Warning): |
+ """Base warning for Requests.""" |
+ pass |
+ |
+ |
+class FileModeWarning(RequestsWarning, DeprecationWarning): |
+ """A file was opened in text mode, but Requests determined its binary length.""" |
+ pass |