Ë
    Z²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© ó    úa/var/www/html/ia-enhanced/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   € ð —L‘L ¨y¨k¸Ô<NÐ;OÐ,PÓQˆ	Ø(ˆÔÜ—l‘lØ!�{ -°¨~Ð>Ü$¨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ÐÓ@ð 	1ÀCØ�‰ #Ò%Ø—‘÷	1ñ 	1ô   Ô$Ü" 3§>¡>Ó#3Ó4×;Ñ;Ó=ò 1�Ø—;‘; )Ó+ÜŸ*™* U§Z¡ZÓ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   „ ð
ð ð
ð ð	
ð
 ð
ð �T‰zó
ð 	 Cð 	¨HÐ5PÑ,QÐTWÑ,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‹<˜!ÒØ(°&×2EÑ2EÑFÒFàˆÜ F×$5Ñ$5°jÓ$AÐA˜&ÄCÔHØ" Q™;Ð&�¨+Ò5ÜÐ :Ó;Ð;Ø%Ð%�¨jÑ8ÜÐ":¨k¨^Ð;XÐ YÓZÐZØ$/°3Ò$6‘j¸IˆGØ$Ð3JÈ7È)ÐS]Ð1^Ñ_Ò_Ü�J‰J�qŒMô  F×$5Ñ$5°jÓ$AÐA˜&ÄCÕHð ˆ
Ü5:³WˆÜ"+¨FÓ"3ò 	4ÑˆK˜Ø˜qÒ Ø38Ð# KÒ0Ø)Ò[Ð.A×.EÑ.EÀkÓ.RÐV[Ñ.[Ð[�Ð[Ø—‘˜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ÑWÐZuÑuñô0(r   