U
    
"gÅ  ã                   @   sL  d dl mZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZ	G d	d
„ d
e	ƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZeZG dd„ de
ƒZG dd„ de
ƒZG dd„ deƒZG dd„ deƒZG dd„ dee
ƒZG dd„ deƒZG dd „ d ee	ƒZG d!d"„ d"e	ƒZG d#d$„ d$e	ƒZG d%d&„ d&eeƒZG d'd(„ d(eƒZG d)d*„ d*eƒZG d+d,„ d,eƒZG d-d.„ d.eƒZG d/d0„ d0eƒZG d1d2„ d2eƒZ G d3d4„ d4eƒZ!G d5d6„ d6eƒZ"G d7d8„ d8eƒZ#G d9d:„ d:eeƒZ$G d;d<„ d<eƒZ%G d=d>„ d>eeƒZG d?d@„ d@eƒZ&G dAdB„ dBe'eƒZ(G dCdD„ dDeƒZ)G dEdF„ dFeƒZ*dGS )Hé    )Úabsolute_import)ÚIncompleteReadc                   @   s   e Zd ZdZdS )Ú	HTTPErrorz#Base exception used by this module.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r
   r
   ú4/usr/lib/python3/dist-packages/urllib3/exceptions.pyr      s   r   c                   @   s   e Zd ZdZdS )ÚHTTPWarningz!Base warning used by this module.Nr   r
   r
   r
   r   r      s   r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )Ú	PoolErrorz/Base exception for errors caused within a pool.c                 C   s   || _ t | d||f ¡ d S )Nz%s: %s)Úpoolr   Ú__init__)Úselfr   Úmessager
   r
   r   r      s    zPoolError.__init__c                 C   s
   | j dfS )N)NN©Ú	__class__©r   r
   r
   r   Ú
__reduce__   s    zPoolError.__reduce__N©r   r   r   r	   r   r   r
   r
   r
   r   r      s   r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚRequestErrorz8Base exception for PoolErrors that have associated URLs.c                 C   s   || _ t | ||¡ d S ©N)Úurlr   r   )r   r   r   r   r
   r
   r   r       s    zRequestError.__init__c                 C   s   | j d | jd ffS r   )r   r   r   r
   r
   r   r   $   s    zRequestError.__reduce__Nr   r
   r
   r
   r   r      s   r   c                   @   s   e Zd ZdZdS )ÚSSLErrorz9Raised when SSL certificate fails in an HTTPS connection.Nr   r
   r
   r
   r   r   )   s   r   c                   @   s   e Zd ZdZdS )Ú
ProxyErrorz,Raised when the connection to a proxy fails.Nr   r
   r
   r
   r   r   .   s   r   c                   @   s   e Zd ZdZdS )ÚDecodeErrorz;Raised when automatic decoding based on Content-Type fails.Nr   r
   r
   r
   r   r   3   s   r   c                   @   s   e Zd ZdZdS )ÚProtocolErrorz>Raised when something unexpected happens mid-request/response.Nr   r
   r
   r
   r   r   8   s   r   c                   @   s   e Zd ZdZddd„ZdS )ÚMaxRetryErrora  Raised when the maximum number of retries is exceeded.

    :param pool: The connection pool
    :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool`
    :param string url: The requested Url
    :param exceptions.Exception reason: The underlying error

    Nc                 C   s&   || _ d||f }t | |||¡ d S )Nz0Max retries exceeded with url: %s (Caused by %r))Úreasonr   r   )r   r   r   r   r   r
   r
   r   r   N   s    zMaxRetryError.__init__)N©r   r   r   r	   r   r
   r
   r
   r   r   D   s   	r   c                   @   s   e Zd ZdZddd„ZdS )ÚHostChangedErrorz?Raised when an existing pool gets a request for a foreign host.é   c                 C   s"   d| }t  | |||¡ || _d S )Nz)Tried to open a foreign host with url: %s)r   r   Úretries)r   r   r   r#   r   r
   r
   r   r   Y   s    zHostChangedError.__init__N)r"   r    r
   r
   r
   r   r!   V   s   r!   c                   @   s   e Zd ZdZdS )ÚTimeoutStateErrorz3 Raised when passing an invalid state to a timeout Nr   r
   r
   r
   r   r$   _   s   r$   c                   @   s   e Zd ZdZdS )ÚTimeoutErrorzÀ Raised when a socket timeout error occurs.

    Catching this error will catch both :exc:`ReadTimeoutErrors
    <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`.
    Nr   r
   r
   r
   r   r%   e   s   r%   c                   @   s   e Zd ZdZdS )ÚReadTimeoutErrorzFRaised when a socket timeout occurs while receiving data from a serverNr   r
   r
   r
   r   r&   o   s   r&   c                   @   s   e Zd ZdZdS )ÚConnectTimeoutErrorz@Raised when a socket timeout occurs while connecting to a serverNr   r
   r
   r
   r   r'   v   s   r'   c                   @   s   e Zd ZdZdS )ÚNewConnectionErrorzHRaised when we fail to establish a new connection. Usually ECONNREFUSED.Nr   r
   r
   r
   r   r(   {   s   r(   c                   @   s   e Zd ZdZdS )ÚEmptyPoolErrorzCRaised when a pool runs out of connections and no more are allowed.Nr   r
   r
   r
   r   r)   €   s   r)   c                   @   s   e Zd ZdZdS )ÚClosedPoolErrorzCRaised when a request enters a pool after the pool has been closed.Nr   r
   r
   r
   r   r*   …   s   r*   c                   @   s   e Zd ZdZdS )ÚLocationValueErrorz<Raised when there is something wrong with a given URL input.Nr   r
   r
   r
   r   r+   Š   s   r+   c                   @   s   e Zd ZdZdd„ ZdS )ÚLocationParseErrorz=Raised when get_host or similar fails to parse the URL input.c                 C   s   d| }t  | |¡ || _d S )NzFailed to parse: %s)r   r   Úlocation)r   r-   r   r
   r
   r   r   ’   s    zLocationParseError.__init__Nr    r
   r
   r
   r   r,      s   r,   c                   @   s   e Zd ZdZdZdZdS )ÚResponseErrorzDUsed as a container for an error reason supplied in a MaxRetryError.ztoo many error responsesz&too many {status_code} error responsesN)r   r   r   r	   ZGENERIC_ERRORZSPECIFIC_ERRORr
   r
   r
   r   r.   ™   s   r.   c                   @   s   e Zd ZdZdS )ÚSecurityWarningz0Warned when performing security reducing actionsNr   r
   r
   r
   r   r/   Ÿ   s   r/   c                   @   s   e Zd ZdZdS )ÚSubjectAltNameWarningzBWarned when connecting to a host with a certificate missing a SAN.Nr   r
   r
   r
   r   r0   ¤   s   r0   c                   @   s   e Zd ZdZdS )ÚInsecureRequestWarningz/Warned when making an unverified HTTPS request.Nr   r
   r
   r
   r   r1   ©   s   r1   c                   @   s   e Zd ZdZdS )ÚSystemTimeWarningz0Warned when system time is suspected to be wrongNr   r
   r
   r
   r   r2   ®   s   r2   c                   @   s   e Zd ZdZdS )ÚInsecurePlatformWarningzEWarned when certain SSL configuration is not available on a platform.Nr   r
   r
   r
   r   r3   ³   s   r3   c                   @   s   e Zd ZdZdS )ÚSNIMissingWarningz9Warned when making a HTTPS request without SNI available.Nr   r
   r
   r
   r   r4   ¸   s   r4   c                   @   s   e Zd ZdZdS )ÚDependencyWarningzc
    Warned when an attempt is made to import a module with missing optional
    dependencies.
    Nr   r
   r
   r
   r   r5   ½   s   r5   c                   @   s   e Zd ZdZdS )ÚResponseNotChunkedz;Response needs to be chunked in order to read it as chunks.Nr   r
   r
   r
   r   r6   Æ   s   r6   c                   @   s   e Zd ZdZdS )ÚBodyNotHttplibCompatiblezz
    Body should be httplib.HTTPResponse like (have an fp attribute which
    returns raw chunks) for read_chunked().
    Nr   r
   r
   r
   r   r7   Ë   s   r7   c                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )r   zÇ
    Response length doesn't match expected Content-Length

    Subclass of http_client.IncompleteRead to allow int value
    for `partial` to avoid creating large objects on streamed
    reads.
    c                    s   t t| ƒ ||¡ d S r   )Úsuperr   r   )r   ÚpartialÚexpectedr   r
   r   r   Ý   s    zIncompleteRead.__init__c                 C   s   d| j | jf S )Nz/IncompleteRead(%i bytes read, %i more expected))r9   r:   r   r
   r
   r   Ú__repr__à   s    þzIncompleteRead.__repr__)r   r   r   r	   r   r;   Ú__classcell__r
   r
   r   r   r   Ô   s   r   c                   @   s   e Zd ZdZdS )ÚInvalidHeaderz(The header provided was somehow invalid.Nr   r
   r
   r
   r   r=   ç   s   r=   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚProxySchemeUnknownz1ProxyManager does not support the supplied schemec                    s   d| }t t| ƒ |¡ d S )NzNot supported proxy scheme %s)r8   r>   r   )r   Zschemer   r   r
   r   r   ð   s    zProxySchemeUnknown.__init__©r   r   r   r	   r   r<   r
   r
   r   r   r>   ì   s   r>   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚHeaderParsingErrorzNRaised by assert_header_parsing, but we convert it to a log.warning statement.c                    s$   d|pd|f }t t| ƒ |¡ d S )Nz%s, unparsed data: %rZUnknown)r8   r@   r   )r   ZdefectsZunparsed_datar   r   r
   r   r   ø   s    zHeaderParsingError.__init__r?   r
   r
   r   r   r@   õ   s   r@   c                   @   s   e Zd ZdZdS )ÚUnrewindableBodyErrorz9urllib3 encountered an error when trying to rewind a bodyNr   r
   r
   r
   r   rA   ý   s   rA   N)+Z
__future__r   Zsix.moves.http_clientr   Zhttplib_IncompleteReadÚ	Exceptionr   ÚWarningr   r   r   r   r   r   r   ÚConnectionErrorr   r!   r$   r%   r&   r'   r(   r)   r*   Ú
ValueErrorr+   r,   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r=   ÚAssertionErrorr>   r@   rA   r
   r
   r
   r   Ú<module>   sH   	

			