o
    i                     @  s   d dl mZ d dlZddlmZ ejrd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 fdd	Z  ZS )RequestErrorNmsg
str | NonecauseException | str | Nonehandlerr   c                   s,   || _ || _|s|rt|}t | d S N)r   r   strsuper__init__)selfr	   r   r   	__class__ P/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/networking/exceptions.pyr      s
   zRequestError.__init__)NNN)r	   r
   r   r   r   r   )__name__
__module____qualname__r   __classcell__r   r   r   r   r      s
    r   c                   @     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          r   c                      s"   e Zd ZdZd fddZ  ZS )	NoSupportingHandlerszAraised when no handlers can support a request for various reasonsunsupported_errorslist[UnsupportedRequest]unexpected_errorslist[Exception]c                   s   |pg | _ |pg | _i }|D ]}||jg |jj qddd | D }|r:dt	d |t
| dg}d}|rE|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   RH_NAMEr'   itemsfilterlenr   r   )r   r!   r#   err_handler_maperr
reason_strerr_strr   r   r   r   !   s   

zNoSupportingHandlers.__init__)r!   r"   r#   r$   )r   r   r   r   r   r   r   r   r   r   r       s    r    c                   @  r   )TransportErrorzNetwork related errorsNr   r   r   r   r   r7   5   s    r7   c                      s0   e Zd Zd
d fddZdd Zdd	 Z  ZS )	HTTPErrorFresponser   c                   sN   || _ |j| _|j| _|| _d|j d|j }|r|d7 }t j|d d S )NzHTTP Error r+   z (redirect loop detected)r,   )r9   statusreasonredirect_loopr   r   )r   r9   r<   r	   r   r   r   r   :   s   zHTTPError.__init__c                 C  s   | j   d S r   )r9   closer   r   r   r   r=   E      zHTTPError.closec                 C  s   d| j  d| j dS )Nz<HTTPError r+   >)r:   r;   r>   r   r   r   __repr__H   s   zHTTPError.__repr__)F)r9   r   )r   r   r   r   r=   rA   r   r   r   r   r   r8   9   s    r8   c                      s(   e Zd Zd
d fddZdd	 Z  ZS )IncompleteReadNpartialintexpected
int | Nonec                   sH   || _ || _| d}|d ur|d| d7 }t jdd|i| d S )Nz bytes readr%   z more expectedr	   r   )rC   rE   r   r   )r   rC   rE   kwargsr	   r   r   r   r   M   s   
zIncompleteRead.__init__c                 C  s   d| j  dS )Nz<IncompleteRead: r@   r,   r>   r   r   r   rA   V   r?   zIncompleteRead.__repr__r   )rC   rD   rE   rF   )r   r   r   r   rA   r   r   r   r   r   rB   L   s    	rB   c                   @     e Zd ZdS )SSLErrorNr   r   r   r   r   r   r   rI   Z       rI   c                   @  r   )CertificateVerifyErrorz,Raised when certificate validated has failedNr   r   r   r   r   rL   ^   r   rL   c                   @  rH   )
ProxyErrorNrJ   r   r   r   r   rM   c   rK   rM   )
__future__r   typingutilsr   TYPE_CHECKINGcommonr   r   r   r   r    r7   r8   rB   rI   rL   rM   network_exceptionsr   r   r   r   <module>   s    