3
/v_ม  ใ               @   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.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   ZGENERIC_ERRORZ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
   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
   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.N)r   r   r   r   r	   r	   r	   r
   r0   ย   s   r0   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
   r1   ว   s   r1   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))r3   r4   )r   r	   r	   r
   ฺ__repr__ฺ   s    zIncompleteRead.__repr__)r   r   r   r   r   r5   ฺ__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
   r7   ฿   s   r7   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)r2   r8   r   )r   ฺschemer   )r   r	   r
   r   ่   s    zProxySchemeUnknown.__init__)r   r   r   r   r   r6   r	   r	   )r   r
   r8   ไ   s   r8   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: %rZUnknown)r2   r:   r   )r   ZdefectsZunparsed_datar   )r   r	   r
   r   ๏   s    zHeaderParsingError.__init__)r   r   r   r   r   r6   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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.   r/   r0   r1   r7   ฺAssertionErrorr8   r:   r;   r	   r	   r	   r
   ฺ<module>   sH   		
	