U
    ä«Fc  ã                   @   sð   d dl 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	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eeeeee	e
eeedœZdd„ ZdS )é    Nc                   @   s,   e Zd ZdZdd„ Zdd„ Zedd„ ƒZdS )	Ú	HTTPErrorz Base of all other errorsc                 G   sl   t |ƒdkr6|d | _|d | _|d | _|d | _n2|d j| _|d j| _|d  ¡ | _|d j| _d S )Né   r   é   é   é   )ÚlenÚstatus_codeÚreasonÚbodyÚheadersÚcodeÚreadÚhdrs)ÚselfÚargs© r   úA/tmp/pip-unpacked-wheel-itnlelph/python_http_client/exceptions.pyÚ__init__   s    


zHTTPError.__init__c                 C   s   t | j| j| j| jffS ©N)r   r   r	   r
   r   ©r   r   r   r   Ú
__reduce__   s    þzHTTPError.__reduce__c                 C   s   t  | j d¡¡S )z>
        :return: dict of response error from the API
        zutf-8)ÚjsonÚloadsr
   Údecoder   r   r   r   Úto_dict   s    zHTTPError.to_dictN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úpropertyr   r   r   r   r   r      s
   r   c                   @   s   e Zd ZdS )ÚBadRequestsErrorN©r   r   r   r   r   r   r   r    !   s   r    c                   @   s   e Zd ZdS )ÚUnauthorizedErrorNr!   r   r   r   r   r"   %   s   r"   c                   @   s   e Zd ZdS )ÚForbiddenErrorNr!   r   r   r   r   r#   )   s   r#   c                   @   s   e Zd ZdS )ÚNotFoundErrorNr!   r   r   r   r   r$   -   s   r$   c                   @   s   e Zd ZdS )ÚMethodNotAllowedErrorNr!   r   r   r   r   r%   1   s   r%   c                   @   s   e Zd ZdS )ÚPayloadTooLargeErrorNr!   r   r   r   r   r&   5   s   r&   c                   @   s   e Zd ZdS )ÚUnsupportedMediaTypeErrorNr!   r   r   r   r   r'   9   s   r'   c                   @   s   e Zd ZdS )ÚTooManyRequestsErrorNr!   r   r   r   r   r(   =   s   r(   c                   @   s   e Zd ZdS )ÚInternalServerErrorNr!   r   r   r   r   r)   A   s   r)   c                   @   s   e Zd ZdS )ÚServiceUnavailableErrorNr!   r   r   r   r   r*   E   s   r*   c                   @   s   e Zd ZdS )ÚGatewayTimeoutErrorNr!   r   r   r   r   r+   I   s   r+   )i�  i‘  i“  i”  i•  i�  iŸ  i­  iô  i÷  iø  c                 C   s4   zt | j | ƒ}W n tk
r.   t| ƒ Y S X |S r   )Úerr_dictr   ÚKeyErrorr   )ÚerrorÚexcr   r   r   Úhandle_error\   s
    r0   )r   Ú	Exceptionr   r    r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r0   r   r   r   r   Ú<module>   s2   õ