B
    Þa·\Ì  ã               @   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 d0d1„ d1eƒZG d2d3„ d3eƒZ G d4d5„ d5eƒZ!G d6d7„ d7eƒZ"G d8d9„ d9eƒZ#G d:d;„ d;eeƒZ$G d<d=„ d=eƒZ%G d>d?„ d?eeƒZG d@dA„ dAeƒZ&G dBdC„ dCe'eƒZ(G dDdE„ dEeƒZ)G dFdG„ dGeƒZ*dHS )Ié    )Ú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
   ú1lib/python3.7/site-packages/urllib3/exceptions.pyr      s   r   c               @   s   e Zd ZdZdS )ÚHTTPWarningz!Base warning used by this module.N)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 )Ú	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 )N)r   r   )r   r
   r
   r   r   #   s    zRequestError.__reduce__N)r   r   r   r	   r   r   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.N)r   r   r   r	   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.N)r   r   r   r	   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.N)r   r   r   r	   r
   r
   r
   r   r   2   s   r   c               @   s   e Zd ZdZdS )ÚProtocolErrorz>Raised when something unexpected happens mid-request/response.N)r   r   r   r	   r
   r
   r
   r   r   7   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   L   s    
zMaxRetryError.__init__)N)r   r   r   r	   r   r
   r
   r
   r   r   B   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   X   s    zHostChangedError.__init__N)r   )r   r   r   r	   r   r
   r
   r
   r   r   U   s   r   c               @   s   e Zd ZdZdS )ÚTimeoutStateErrorz3 Raised when passing an invalid state to a timeout N)r   r   r   r	   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>`.
    N)r   r   r   r	   r
   r
   r
   r   r    c   s   r    c               @   s   e Zd ZdZdS )ÚReadTimeoutErrorzFRaised when a socket timeout occurs while receiving data from a serverN)r   r   r   r	   r
   r
   r
   r   r!   l   s   r!   c               @   s   e Zd ZdZdS )ÚConnectTimeoutErrorz@Raised when a socket timeout occurs while connecting to a serverN)r   r   r   r	   r
   r
   r
   r   r"   s   s   r"   c               @   s   e Zd ZdZdS )ÚNewConnectionErrorzHRaised when we fail to establish a new connection. Usually ECONNREFUSED.N)r   r   r   r	   r
   r
   r
   r   r#   x   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.N)r   r   r   r	   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.N)r   r   r   r	   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.N)r   r   r   r	   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__N)r   r   r   r	   r   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 actionsN)r   r   r   r	   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.N)r   r   r   r	   r
   r
   r
   r   r+   ¡   s   r+   c               @   s   e Zd ZdZdS )ÚInsecureRequestWarningz/Warned when making an unverified HTTPS request.N)r   r   r   r	   r
   r
   r
   r   r,   ¦   s   r,   c               @   s   e Zd ZdZdS )ÚSystemTimeWarningz0Warned when system time is suspected to be wrongN)r   r   r   r	   r
   r
   r
   r   r-   «   s   r-   c               @   s   e Zd ZdZdS )ÚInsecurePlatformWarningzEWarned when certain SSL configuration is not available on a platform.N)r   r   r   r	   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.N)r   r   r   r	   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.
    N)r   r   r   r	   r
   r
   r
   r   r0   º   s   r0   c               @   s   e Zd ZdZdS )ÚResponseNotChunkedz;Response needs to be chunked in order to read it as chunks.N)r   r   r   r	   r
   r
   r
   r   r1   Â   s   r1   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().
    N)r   r   r   r	   r
   r
   r
   r   r2   Ç   s   r2   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 )N)Úsuperr   r   )r   ÚpartialÚexpected)r   r
   r   r   ×   s    zIncompleteRead.__init__c             C   s   d| j | jf S )Nz/IncompleteRead(%i bytes read, %i more expected))r4   r5   )r   r
   r
   r   Ú__repr__Ú   s    zIncompleteRead.__repr__)r   r   r   r	   r   r6   Ú__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.N)r   r   r   r	   r
   r
   r
   r   r8   ß   s   r8   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)r3   r9   r   )r   Zschemer   )r   r
   r   r   è   s    zProxySchemeUnknown.__init__)r   r   r   r	   r   r7   r
   r
   )r   r   r9   ä   s   r9   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)r3   r:   r   )r   ZdefectsZunparsed_datar   )r   r
   r   r   ï   s    zHeaderParsingError.__init__)r   r   r   r	   r   r7   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 bodyN)r   r   r   r	   r
   r
   r
   r   r;   ô   s   r;   N)+Z
__future__r   Zpackages.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*   r+   r,   r-   r.   r/   r0   r1   r2   r8   ÚAssertionErrorr9   r:   r;   r
   r
   r
   r   Ú<module>   sH   		
	