3
สh`ห  ใ               @   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
   ๚=/tmp/pip-build-ikjamrr1/pip/pip/_vendor/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j| 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j| || 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j| ||| 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 j| ||| || _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 j| | || _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	   ฺGENERIC_ERRORฺSPECIFIC_ERRORr
   r
   r
   r   r)      s   r)   c               @   s   e Zd ZdZdS )ฺSecurityWarningz/Warned when perfoming 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   r0   ฐ   s   r0   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   r1   ต   s   r1   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   r2   บ   s   r2   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   r3   ย   s   r3   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   r4   ว   s   r4   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| j|| 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))r6   r7   )r   r
   r
   r   ฺ__repr__ฺ   s    zIncompleteRead.__repr__)r   r   r   r	   r   r8   ฺ__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   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| j| d S )NzNot supported proxy scheme %s)r5   r;   r   )r   ฺschemer   )r   r
   r   r   ่   s    zProxySchemeUnknown.__init__)r   r   r   r	   r   r9   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| j| d S )Nz%s, unparsed data: %rฺUnknown)r5   r=   r   )r   ฺdefectsฺunparsed_datar   )r   r
   r   r   ๏   s    zHeaderParsingError.__init__)r   r   r   r	   r   r9   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   rA   ๔   s   rA   N)+ฺ
__future__r   Zpackages.six.moves.http_clientr   ฺ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/   r0   r1   r2   r3   r4   r:   ฺAssertionErrorr;   r=   rA   r
   r
   r
   r   ฺ<module>   sH   		
	