You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			152 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			152 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
"""
 | 
						|
requests.exceptions
 | 
						|
~~~~~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
This module contains the set of Requests' exceptions.
 | 
						|
"""
 | 
						|
from urllib3.exceptions import HTTPError as BaseHTTPError
 | 
						|
 | 
						|
from .compat import JSONDecodeError as CompatJSONDecodeError
 | 
						|
 | 
						|
 | 
						|
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().__init__(*args, **kwargs)
 | 
						|
 | 
						|
 | 
						|
class InvalidJSONError(RequestException):
 | 
						|
    """A JSON error occurred."""
 | 
						|
 | 
						|
 | 
						|
class JSONDecodeError(InvalidJSONError, CompatJSONDecodeError):
 | 
						|
    """Couldn't decode the text into json"""
 | 
						|
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        """
 | 
						|
        Construct the JSONDecodeError instance first with all
 | 
						|
        args. Then use it's args to construct the IOError so that
 | 
						|
        the json specific args aren't used as IOError specific args
 | 
						|
        and the error message from JSONDecodeError is preserved.
 | 
						|
        """
 | 
						|
        CompatJSONDecodeError.__init__(self, *args)
 | 
						|
        InvalidJSONError.__init__(self, *self.args, **kwargs)
 | 
						|
 | 
						|
    def __reduce__(self):
 | 
						|
        """
 | 
						|
        The __reduce__ method called when pickling the object must
 | 
						|
        be the one from the JSONDecodeError (be it json/simplejson)
 | 
						|
        as it expects all the arguments for instantiation, not just
 | 
						|
        one like the IOError, and the MRO would by default call the
 | 
						|
        __reduce__ method from the IOError due to the inheritance order.
 | 
						|
        """
 | 
						|
        return CompatJSONDecodeError.__reduce__(self)
 | 
						|
 | 
						|
 | 
						|
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 scheme (e.g. http or https) is missing."""
 | 
						|
 | 
						|
 | 
						|
class InvalidSchema(RequestException, ValueError):
 | 
						|
    """The URL scheme provided is either invalid or unsupported."""
 | 
						|
 | 
						|
 | 
						|
class InvalidURL(RequestException, ValueError):
 | 
						|
    """The URL provided was somehow invalid."""
 | 
						|
 | 
						|
 | 
						|
class InvalidHeader(RequestException, ValueError):
 | 
						|
    """The header value provided was somehow invalid."""
 | 
						|
 | 
						|
 | 
						|
class InvalidProxyURL(InvalidURL):
 | 
						|
    """The proxy URL provided is 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."""
 | 
						|
 | 
						|
 | 
						|
class FileModeWarning(RequestsWarning, DeprecationWarning):
 | 
						|
    """A file was opened in text mode, but Requests determined its binary length."""
 | 
						|
 | 
						|
 | 
						|
class RequestsDependencyWarning(RequestsWarning):
 | 
						|
    """An imported dependency doesn't match the expected version range."""
 |