
    iV                        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 G d de      Z G d de      Z G d de      Z G d d      Zdedededee   dedz  dee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)MultiReplicaStreamEventeventkindN)__name__
__module____qualname__r   __annotations__r        s/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/huggingface_hub/_hot_reload/client.pyr   r       s    
'
&&r   r   c                   (    e Zd ZU ed   ed<   eed<   y)MultiReplicaStreamReplicaHashreplicaHashr   hashN)r   r   r   r   r   strr   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   *   s    
+
r   r   c            	       @    e Zd Zdededededz  fdZdedee   fd	Zy)
ReloadClienthost	subdomainreplica_hashtokenNc                    |j                  || dt               }|| _        t        j                  | d| t        |            | _        y )Nz--z/--replicas/+)r&   )base_urlheaders)replaceHOT_RELOADING_PORTr%   httpxClientr   client)selfr#   r$   r%   r&   	base_hosts         r   __init__zReloadClient.__init__/   sO     LLyk<N;O,PQ	(ll!{-~>$51
r   	reload_idreturnc              #   \  K   t        |      }| j                  j                  dd|      5 }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message)r   r.   streamr	   r   
iter_byteseventsr   r7   loadsdata)r/   r2   reqresr   s        r   
get_reloadzReloadClient.get_reload>   s     !95[[C@ 	1C$"3>>#34;;= 1;;)+**UZZ001	1 	1 	1s#   +B,AB 3#B 	B, B)%B,)r   r   r   r   r1   r   r   r@   r   r   r   r"   r"   .   sL    
 
 	

 
 Tz
1C 1H5P,Q 1r   r"   
commit_shar#   r$   replica_hashesr&   r3   c           	   #     K   |D cg c]  }t        ||||       }}i }t        |      D ]  \  }}	t        |      dkD  rd|	j                  d d}
t	               }t        |	j                  |             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  y c c}w w)N)r#   r$   r%   r&   r
   r   )r   r   Tr   r   )r   r   r   r    )	r"   	enumeratelenr%   r   r@   getappendpopleft)rA   r#   r$   rB   r&   r   clientsfirst_client_eventsclient_indexr.   
full_matchreplayevent_indexr   s                 r   multi_replica_reload_eventsrO   G   s-     #  			
G  CE )' 2 (fw<!(&2E2EFF
5:W"+F,=,=j,I"J 	4Kq 38#K0)[.A.E.Ek.RV[.[[[e$&1ABB "U33	4 !
;''(s"   C.C)B0C.C.C. C.)r7   collectionsr   collections.abcr   typingr   r   r,   utils._headersr   utils._httpr	   
sse_clientr   typesr   r   r+   r   r   r   r"   r   listrO   r   r   r   <module>rX      s       $ %  - - ! C  'i '
I 
) 1 12!(!(
!( !( I	!(
 :!( %(EEHccd!(r   