
    %iL                         d dl mZmZmZmZ d dlZd dlmZ d dlm	Z	 dZ
 G d de      Z G d d	      Z ed
e      Z G d d      Zy)    )DictTypeTypeVarOptionalN)Message)urlparsetwirpc                       e Zd Zdddedededeeeef      ddf
dZedefd	       Z	edefd
       Z
edefd       Zedeeef   fd       ZdefdZy)
TwirpErrorN)metadatacodemsgstatusr   returnc                D    || _         || _        || _        |xs i | _        y N)_code_msg_status	_metadata)selfr   r   r   r   s        R/var/www/html/engine/venv/lib/python3.12/site-packages/livekit/api/twirp_client.py__init__zTwirpError.__init__   s$     
	!R    c                     | j                   S r   )r   r   s    r   r   zTwirpError.code&   s    zzr   c                     | j                   S r   )r   r   s    r   messagezTwirpError.message*   s    yyr   c                     | j                   S )zHTTP status code)r   r   s    r   r   zTwirpError.status.   s     ||r   c                     | j                   S )zTwirp metadata)r   r   s    r   r   zTwirpError.metadata3   s     ~~r   c                     d| j                    d| j                   d| j                   }| j                  r|d| j                   z  }|dz  }|S )NzTwirpError(code=z
, message=z	, status=z, metadata=))r   r   r   r   )r   results     r   __str__zTwirpError.__str__8   sS    #DII;jiPTP[P[}]==DMM?33F#r   )__name__
__module____qualname__strintr   r   r   propertyr   r   r   r   r$    r   r   r   r      s     .2(( (
 ( 4S>*( 
( c         $sCx.   r   r   c                   T    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZy)TwirpErrorCodecanceledunknowninvalid_argument	malformeddeadline_exceeded	not_found	bad_routealready_existspermission_deniedunauthenticatedresource_exhaustedfailed_preconditionabortedout_of_rangeunimplementedinternalunavailabledatalossN)r%   r&   r'   CANCELEDUNKNOWNINVALID_ARGUMENT	MALFORMEDDEADLINE_EXCEEDED	NOT_FOUND	BAD_ROUTEALREADY_EXISTSPERMISSION_DENIEDUNAUTHENTICATEDRESOURCE_EXHAUSTEDFAILED_PRECONDITIONABORTEDOUT_OF_RANGEUNIMPLEMENTEDINTERNALUNAVAILABLE	DATA_LOSSr+   r   r   r-   r-   @   sa    HG)I+II%N+'O-/G!L#MHKIr   r-   T)boundc                       e Zd Zefdej
                  dedededdf
dZddd	ed
edede	eef   de
e   deej                     defdZy)TwirpClientsessionhostpkgprefixr   Nc                 
   t        |      }|j                  }|j                  d      r|j                  dd      }| d|j                   d|j
                   }|j                  d      | _        || _        || _	        || _
        y )Nwshttpz:///)r   scheme
startswithreplacenetlocpathrstriprW   rX   rY   _session)r   rV   rW   rX   rY   	parse_resr^   s          r   r   zTwirpClient.__init__Y   s}     TN	!!T"^^D&1FY--.a	/?@KK$	r   )timeoutservicemethoddataheadersresponse_classrf   c          	      h  K   | j                    d| j                   d| j                   d| d| 	}d|d<   |j                         }| j                  j                  ||||      4 d {   }	|	j                  dk(  r8|j                  |	j                          d {         cd d d       d {    S |	j                          d {   }
t        |
j                  dd      |
j                  d	d
      |	j                  |
j                  d            7 7 {7 i7 R# 1 d {  7  sw Y   y xY ww)Nr]   .zapplication/protobufzContent-Type)rj   ri   rf      r   r/   r    meta)r   r   )rW   rY   rX   SerializeToStringrd   postr   
FromStringreadjsonr   get)r   rg   rh   ri   rj   rk   rf   urlserialized_dataresp
error_datas              r   requestzTwirpClient.requestk   s!     1T[[M488*AgYaxH"8002==%% & 
 	 	{{c!%00tyy{1BC		 	 	 $(99;.
 NN695NN5"-;;'^^F3	 	 2C		 /	 	 	sy   A'D2)D*D2-.DD
D#D2/D0D25DD	ADD2DD2DD/#D&$D/+D2)r%   r&   r'   DEFAULT_PREFIXaiohttpClientSessionr(   r   r   r   r   rR   r   ClientTimeoutr{   r+   r   r   rU   rU   X   s     % &&    	 
   
 4 48  	
 c3h Q '//0 
r   rU   )typingr   r   r   r   r}   google.protobuf.messager   urllib.parser   r|   	Exceptionr   r-   rR   rU   r+   r   r   <module>r      sJ    1 0  + !% %P * Cw. .r   