
    ^j                     8   d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl	Z	ddl
mZ ddlmZ dd	lmZ dd
lmZmZ dZdZ G d de      Z G d de      Z G d de      Z G d de      Z G d d      Z	 ddedededee   dedz  dedeeez  ez  ez     fdZy)     N)deque)Iterator)Literal	TypedDict   )build_hf_headers)hf_raise_for_status   )	SSEClient)ApiGetReloadEventSourceDataApiGetReloadRequesti     c                   (    e Zd ZU ed   ed<   eed<   y)MultiReplicaStreamWarningwarningkindmessageN__name__
__module____qualname__r   __annotations__str     m/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/huggingface_hub/_hot_reload/client.pyr   r   "   s    
)
Lr   r   c                   (    e Zd ZU ed   ed<   eed<   y)MultiReplicaStreamEventeventr   N)r   r   r   r   r   r   r   r   r   r   r   '   s    
'
&&r   r   c                   (    e Zd ZU ed   ed<   eed<   y)MultiReplicaStreamReplicaHashreplicaHashr   hashNr   r   r   r   r!   r!   ,   s    
-
  
Ir   r!   c                       e Zd ZU ed   ed<   y)MultiReplicaStreamFullMatch	fullMatchr   N)r   r   r   r   r   r   r   r   r%   r%   1   s    
+
r   r%   c            	       F    e Zd Zdededededz  fdZdedee   ez  fd	Zy)
ReloadClienthost	subdomainreplica_hashtokenNc                    |j                  || dt               }|| _        t        j                  | d| t        |      t              | _        y )Nz--z/--replicas/+)r,   )base_urlheaderstimeout)replaceHOT_RELOADING_PORTr+   httpxClientr   CLIENT_TIMEOUTclient)selfr)   r*   r+   r,   	base_hosts         r   __init__zReloadClient.__init__6   sR     LLyk<N;O,PQ	(ll!{-~>$51"
r   	reload_idreturnc              #     K   t        |      }| j                  j                  dd|      5 }|j                  dk7  r|j                  cd d d        S t	        |       t        |j                               j                         D ]3  }|j                  dk(  st        j                  |j                         5 	 d d d        y # 1 sw Y   y xY ww)N)reloadIdPOSTz/get-reload)json   r   )r   r6   streamstatus_coder	   r   
iter_byteseventsr   r?   loadsdata)r7   r:   reqresr   s        r   
get_reloadzReloadClient.get_reloadF   s     !95[[C@ 	1C#%	1 	1  $"3>>#34;;= 1;;)+**UZZ001		1 	1 s/   +CC
CAC#C;	CC	C)	r   r   r   r   r9   r   r   intrI   r   r   r   r(   r(   5   sR    
 
 	

 
 Tz
 	C 	H5P,QTW,W 	r   r(   
commit_shar)   r*   replica_hashesr,   max_retriesr;   c           	   #     K   |D cg c]  }t        ||||       }}i }t        |      D ]E  \  }	}
t        |      dkD  rd|
j                  d d}t	        |
j                  |       x}t              ru|dz   x}|kD  rt        d      |x}dvrt        d|d	      |d
k(  rdnd}dd| dd t        j                  d       t	        |
j                  |       x}t              rud}t               }t        |      D ]]  \  }}|	dk(  r|||<   n,|xr |j                  |      |k(  x}r|j                  |       =|rd|j                         d |rd|d _ |	dkD  s<|s@ddi H y c c}w w)N)r)   r*   r+   r,   r
   r"   )r   r#   r   zToo many retries reached)r@      zUnexpected status_code=z on `ReloadClient.get_reload`rO   r=   replicar   zRetrying on unexpected z
 not found)r   r   r   Tr   )r   r   r   r&   )r(   	enumeratelenr+   
isinstancerI   rJ   	Exceptiontimesleepr   getappendpopleft)rK   r)   r*   rL   r,   rM   r#   clientsfirst_client_eventsclient_indexr6   retriesrD   rB   subject
full_matchreplayevent_indexr   s                      r   multi_replica_reload_eventsrb   R   s    " #  			
G  CE )' 2 (fw<!(&2E2EFFF$5$5j$AA&CH"Q;&+5 :;;%%j8":k^;X YZZ$/3$6jIG$3J7)S]1^__JJqM F$5$5j$AA&CH 
5:W"+F"3 	4Kq 38#K0)[.A.E.Ek.RV[.[[[e$&1ABB "U33	4 !
;''7(s)   E;E6CE;*A-E;E;(E;,E;)
   )r?   rU   collectionsr   collections.abcr   typingr   r   r3   utils._headersr   utils._httpr	   
sse_clientr   typesr   r   r2   r5   r   r   r!   r%   r(   r   listrJ   rb   r   r   r   <module>rl      s        $ %  - - ! C  	 
'i '
I 
)  F 0(0(
0( 0( I	0(
 :0( 0(  77:WWZuu0(r   