a
    ˜Àfg   ã                   @   s~  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ƒZ$G d;d<„ d<eeƒZ%G d=d>„ d>eƒZ&G d?d@„ d@eeƒZG dAdB„ dBeeƒZ'G dCdD„ dDeƒZ(G dEdF„ dFe)eƒZ*G dGdH„ dHeƒZ+G dIdJ„ dJeƒZ,G dKdL„ dLeƒZ-dMS )Né    )Ú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‡ fdd„Z‡  ZS )Ú
ProxyErrorz,Raised when the connection to a proxy fails.c                    s$   t t| ƒj||g|¢R Ž  || _d S r   )Úsuperr   r   Zoriginal_error)r   r   ÚerrorÚargsr   r
   r   r   5   s    zProxyError.__init__©r   r   r   r	   r   Ú__classcell__r
   r
   r   r   r   2   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!   :   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"   @   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   W   s    zMaxRetryError.__init__)N©r   r   r   r	   r   r
   r
   r
   r   r#   M   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   b   s    zHostChangedError.__init__N)r'   r%   r
   r
   r
   r   r&   _   s   r&   c                   @   s   e Zd ZdZdS )ÚTimeoutStateErrorz1Raised when passing an invalid state to a timeoutNr   r
   r
   r
   r   r)   h   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*   n   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+   x   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,   €   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   r0   ˜   s   r0   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   r2   r   r
   r
   r   r   ¡   s    zLocationParseError.__init__Nr%   r
   r
   r
   r   r1   ž   s   r1   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚURLSchemeUnknownz2Raised when a URL input has an unsupported scheme.c                    s"   d| }t t| ƒ |¡ || _d S )NzNot supported URL scheme %s)r   r3   r   Úscheme©r   r4   r   r   r
   r   r   «   s    zURLSchemeUnknown.__init__r   r
   r
   r   r   r3   ¨   s   r3   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   r6   ²   s   r6   c                   @   s   e Zd ZdZdS )ÚSecurityWarningz0Warned when performing security reducing actionsNr   r
   r
   r
   r   r7   ¹   s   r7   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   r8   ¿   s   r8   c                   @   s   e Zd ZdZdS )ÚInsecureRequestWarningz/Warned when making an unverified HTTPS request.Nr   r
   r
   r
   r   r9   Å   s   r9   c                   @   s   e Zd ZdZdS )ÚSystemTimeWarningz0Warned when system time is suspected to be wrongNr   r
   r
   r
   r   r:   Ë   s   r:   c                   @   s   e Zd ZdZdS )ÚInsecurePlatformWarningzIWarned when certain TLS/SSL configuration is not available on a platform.Nr   r
   r
   r
   r   r;   Ñ   s   r;   c                   @   s   e Zd ZdZdS )ÚSNIMissingWarningz9Warned when making a HTTPS request without SNI available.Nr   r
   r
   r
   r   r<   ×   s   r<   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   r=   Ý   s   r=   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   r>   æ   s   r>   c                   @   s   e Zd ZdZdS )ÚBodyNotHttplibCompatiblez‡
    Body should be :class:`http.client.HTTPResponse` like
    (have an fp attribute which returns raw chunks) for read_chunked().
    Nr   r
   r
   r
   r   r?   ì   s   r?   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 :class:`http.client.IncompleteRead` to allow int value
    for ``partial`` to avoid creating large objects on streamed reads.
    c                    s   t t| ƒ ||¡ d S r   )r   r   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))r@   rA   r   r
   r
   r   Ú__repr__   s    þzIncompleteRead.__repr__©r   r   r   r	   r   rB   r    r
   r
   r   r   r   õ   s   r   c                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚInvalidChunkLengthz+Invalid chunk length in a chunked response.c                    s(   t t| ƒ | ¡ |j¡ || _|| _d S r   )r   rD   r   ÚtellZlength_remainingÚresponseÚlength)r   rF   rG   r   r
   r   r   
  s
    

ÿzInvalidChunkLength.__init__c                 C   s   d| j | jf S )Nz0InvalidChunkLength(got length %r, %i bytes read))rG   r@   r   r
   r
   r   rB     s    þzInvalidChunkLength.__repr__rC   r
   r
   r   r   rD     s   rD   c                   @   s   e Zd ZdZdS )ÚInvalidHeaderz(The header provided was somehow invalid.Nr   r
   r
   r
   r   rH     s   rH   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚProxySchemeUnknownz1ProxyManager does not support the supplied schemec                    s6   |dkrd }|d u rd}nd| }t t| ƒ |¡ d S )NZ	localhostz>Proxy URL had no scheme, should start with http:// or https://zCProxy URL had unsupported scheme %s, should use http:// or https://)r   rI   r   r5   r   r
   r   r   #  s    ÿÿzProxySchemeUnknown.__init__r   r
   r
   r   r   rI     s   rI   c                   @   s   e Zd ZdZdS )ÚProxySchemeUnsupportedz=Fetching HTTPS resources through HTTPS proxies is unsupportedNr   r
   r
   r
   r   rJ   2  s   rJ   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)r   rK   r   )r   ZdefectsZunparsed_datar   r   r
   r   r   ;  s    zHeaderParsingError.__init__r   r
   r
   r   r   rK   8  s   rK   c                   @   s   e Zd ZdZdS )ÚUnrewindableBodyErrorz9urllib3 encountered an error when trying to rewind a bodyNr   r
   r
   r
   r   rL   @  s   rL   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/   Ú
ValueErrorr0   r1   r3   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   rD   rH   ÚAssertionErrorrI   rJ   rK   rL   r
   r
   r
   r   Ú<module>   sN   	


		