U
    g                     @  s   d dl mZ d dlZddlmZ ejr6ddlmZ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G dd deZeefZdS )    )annotationsN   )YoutubeDLError   )RequestHandlerResponsec                      s(   e Zd Zddddd fddZ  ZS )	RequestErrorNz
str | NonezException | str | Noner   )msgcausehandlerc                   s,   || _ || _|s|rt|}t | d S N)r   r
   strsuper__init__)selfr	   r
   r   	__class__ @/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/networking/exceptions.pyr      s
    zRequestError.__init__)NNN)__name__
__module____qualname__r   __classcell__r   r   r   r   r      s      r   c                   @  s   e Zd ZdZdS )UnsupportedRequestz-raised when a handler cannot handle a requestNr   r   r   __doc__r   r   r   r   r      s   r   c                      s(   e Zd ZdZddd fddZ  ZS )NoSupportingHandlerszAraised when no handlers can support a request for various reasonszlist[UnsupportedRequest]zlist[Exception])unsupported_errorsunexpected_errorsc                   s   |pg | _ |pg | _i }|D ]}||jg |jj qddd | D }|rtdt	d |t
| dg}d}|r|d| 7 }t j|d d S )	N, c                 S  s&   g | ]\}}| d d | dqS )z (r   ))join).0r	   handlersr   r   r   
<listcomp>*   s     z1NoSupportingHandlers.__init__.<locals>.<listcomp>z + z unexpected error(s)zUnable to handle request: r	   )r   r   
setdefaultr	   appendr   ZRH_NAMEr!   itemsfilterlenr   r   )r   r   r   Zerr_handler_maperrZ
reason_strerr_strr   r   r   r   !   s    

zNoSupportingHandlers.__init__)r   r   r   r   r   r   r   r   r   r   r      s   r   c                   @  s   e Zd ZdZdS )TransportErrorzNetwork related errorsNr   r   r   r   r   r.   5   s   r.   c                      s4   e Zd Zd
dd fddZdd Zdd	 Z  ZS )	HTTPErrorFr   )responsec                   sN   || _ |j| _|j| _|| _d|j d|j }|r<|d7 }t j|d d S )NzHTTP Error r%   z (redirect loop detected)r&   )r0   statusreasonredirect_loopr   r   )r   r0   r3   r	   r   r   r   r   :   s    zHTTPError.__init__c                 C  s   | j   d S r   )r0   closer   r   r   r   r4   E   s    zHTTPError.closec                 C  s   d| j  d| j dS )Nz<HTTPError r%   >)r1   r2   r5   r   r   r   __repr__H   s    zHTTPError.__repr__)F)r   r   r   r   r4   r7   r   r   r   r   r   r/   9   s   r/   c                      s.   e Zd Zd	ddd fddZdd Z  ZS )
IncompleteReadNintz
int | None)partialexpectedc                   sH   || _ || _| d}|d k	r.|d| d7 }t jf d|i| d S )Nz bytes readr   z more expectedr	   )r:   r;   r   r   )r   r:   r;   kwargsr	   r   r   r   r   M   s    
zIncompleteRead.__init__c                 C  s   d| j  dS )Nz<IncompleteRead: r6   r&   r5   r   r   r   r7   V   s    zIncompleteRead.__repr__)N)r   r   r   r   r7   r   r   r   r   r   r8   L   s   	r8   c                   @  s   e Zd ZdS )SSLErrorNr   r   r   r   r   r   r   r=   Z   s   r=   c                   @  s   e Zd ZdZdS )CertificateVerifyErrorz,Raised when certificate validated has failedNr   r   r   r   r   r?   ^   s   r?   c                   @  s   e Zd ZdS )
ProxyErrorNr>   r   r   r   r   r@   c   s   r@   )
__future__r   typingutilsr   TYPE_CHECKINGcommonr   r   r   r   r   r.   r/   r8   r=   r?   r@   Znetwork_exceptionsr   r   r   r   <module>   s   