o
    ©¼–i2  ã                   @  s†   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	ddddœddd„Z	dS )é    )Úannotationsc                   @  s   e Zd ZdZdS )ÚAssignmentTimeoutErrorz›Raised when accepting a job but not receiving an assignment within the specified timeout.
    The server may have chosen another worker to handle this job.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   ú\/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/_exceptions.pyr      s    r   c                      sb   e Zd ZU dZded< 	 ded< 	 dZded< 	 d	d
dœd‡ fdd„Zddd„Zddd„Z‡  Z	S )ÚAPIErrorzORaised when an API request failed.
    This is used on our TTS/STT/LLM plugins.ÚstrÚmessageúobject | NoneÚbodyFÚboolÚ	retryableNT©r   r   ÚreturnÚNonec                  s"   t ƒ  |¡ || _|| _|| _d S ©N)ÚsuperÚ__init__r   r   r   )Úselfr   r   r   ©Ú	__class__r   r	   r   "   s   
zAPIError.__init__c                 C  s   | j S r   )r   ©r   r   r   r	   Ú__str__)   s   zAPIError.__str__c                 C  s&   | j j› d| j›d| j›d| j›dS )Nú(ú, body=ú, retryable=ú))r   r   r   r   r   r   r   r   r	   Ú__repr__,   s   &zAPIError.__repr__)r   r   r   r   r   r   r   r   ©r   r   )
r   r   r   r   Ú__annotations__r   r   r   r    Ú__classcell__r   r   r   r	   r
      s   
 
r
   c                      sN   e Zd ZU dZded< 	 ded< 	 dddddœd‡ fdd„Zddd„Z‡  ZS )ÚAPIStatusErrorz<Raised when an API response has a status code of 4xx or 5xx.ÚintÚstatus_codeú
str | NoneÚ
request_idéÿÿÿÿN)r&   r(   r   r   r   r   r   r   r   úbool | Noner   r   c                  sB   |d u rd}|dkr|dk rd}t ƒ j|||d || _|| _d S )NTi  iô  Fr   )r   r   r&   r(   )r   r   r&   r(   r   r   r   r   r	   r   9   s   	
zAPIStatusError.__init__c                 C  s6   | j j› d| j›d| j›d| j›d| j›d| j›dS )Nr   z, status_code=z, request_id=r   r   r   )r   r   r   r&   r(   r   r   r   r   r   r	   r    M   s   ÿþýüÿzAPIStatusError.__repr__)r   r   r&   r%   r(   r'   r   r   r   r*   r   r   r!   )r   r   r   r   r"   r   r    r#   r   r   r   r	   r$   0   s   
 ùr$   c                      ó*   e Zd ZdZdddœd‡ fdd„Z‡  ZS )ÚAPIConnectionErrorz<Raised when an API request failed due to a connection error.úConnection error.T©r   r   r   r   r   r   r   c                  s   t ƒ j|d |d d S )Nr   ©r   r   ©r   r   r   r   r   r	   r   Z   s   zAPIConnectionError.__init__)r-   ©r   r   r   r   r   r   ©r   r   r   r   r   r#   r   r   r   r	   r,   W   ó    r,   c                      r+   )ÚAPITimeoutErrorz%Raised when an API request timed out.úRequest timed out.Tr.   r   r   r   r   r   r   c                  s   t ƒ j||d d S )Nr.   r/   r0   r   r   r	   r   a   s   zAPITimeoutError.__init__)r5   r1   r2   r   r   r   r	   r4   ^   r3   r4   c                   @  s   e Zd ZdS )ÚCLIErrorN)r   r   r   r   r   r   r	   r6   e   s    r6   Ú N)r(   r   r   r   Ústatusr%   r(   r'   r   r   r   c                C  s|   ddl m} z||ƒj}W n ty   d|› }Y nw | r.| |kr.| › d|› d|› d}n|› d|› d}t||||dS )zÏCreate an APIStatusError from an HTTP status code.

    When the message carries extra detail beyond the standard reason phrase,
    both the message and the reason are shown. Otherwise just the reason.
    r   )Ú
HTTPStatuszHTTP z (ú r   )r   r&   r(   r   )Úhttpr9   ÚphraseÚ
ValueErrorr$   )r   r8   r(   r   r9   ÚreasonÚdisplayr   r   r	   Úcreate_api_error_from_httpi   s   ÿür@   )r7   )
r   r   r8   r%   r(   r'   r   r   r   r$   )
Ú
__future__r   Ú	Exceptionr   r
   r$   r,   r4   r6   r@   r   r   r   r	   Ú<module>   s    
"'ÿû