Ë
    rPêj$$  ã            	       ón  — d Z ddlZddlZddlZddlZddlmZ ddlmZ ej                  dk(  rddl
Z
nddlZddlZddlZ G d„ d«      Z G d	„ d
«      Zdedee   defd„Zdefd„Zdefd„Zed„ «       Zdefd„Zdedee   defd„Zdedee   defd„Z	 ddeeeez        dee   deeef   dz  defd„Zy)zEContains utilities to print stuff to the terminal (styling, helpers).é    N)Úcontextmanageré   )Úis_agentÚwin32c                   ó>   — e Zd ZdZd	defd„Zdeddfd„Zdeddfd„Zy)
Ú
StatusLinezJMinimal TTY status line for sync progress (stderr, single-line overwrite).Úenabledc                 óR   — |xr t         j                  j                  «       | _        y ©N)ÚsysÚstderrÚisattyÚ_active)Úselfr	   s     úd/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/huggingface_hub/utils/_terminal.pyÚ__init__zStatusLine.__init__$   s   € ØÒ6¤3§:¡:×#4Ñ#4Ó#6ˆ�ó    ÚmsgÚreturnNc                 ó  — | j                   sy t        j                  «       j                  }t	        |«      |dz
  kD  r|d |dz
   dz   }t
        j                  j                  d|› d�«       t
        j                  j                  «        y )Nr   é   ú...ú	[K[90mú[0m©	r   ÚshutilÚget_terminal_sizeÚcolumnsÚlenr   r   ÚwriteÚflush©r   r   Úwidths      r   ÚupdatezStatusLine.update'   sq   € Ø�|Š|ØÜ×(Ñ(Ó*×2Ñ2ˆÜˆs‹8�e˜a‘iÒØ�k˜ ™	Ð" UÑ*ˆCÜ�
‰
×ÑÐ+¨C¨5°Ð8Ô9Ü�
‰
×ÑÕr   c                 ó  — | j                   sy t        j                  «       j                  }t	        |«      |dz
  kD  r|d |dz
   dz   }t
        j                  j                  d|› d�«       t
        j                  j                  «        y )Nr   r   r   r   z[0m
r   r"   s      r   ÚdonezStatusLine.done0   sq   € Ø�|Š|ØÜ×(Ñ(Ó*×2Ñ2ˆÜˆs‹8�e˜a‘iÒØ�k˜ ™	Ð" UÑ*ˆCÜ�
‰
×ÑÐ+¨C¨5°	Ð:Ô;Ü�
‰
×ÑÕr   )T)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úboolr   Ústrr$   r&   © r   r   r   r   !   s7   „ ÙTñ7 ó 7ð˜#ð  $ó ð˜ð  ô r   r   c                   ó4  — e Zd ZU dZdZdZdZdZdZdZ	dZ
d	Zd
Zed
z  ed<   ededd
fd„«       Zededefd„«       Zededefd„«       Zededefd„«       Zededefd„«       Zededefd„«       Zededefd„«       Zededefd„«       Zedededefd„«       Zy
)ÚANSIz;
    Helper for en.wikipedia.org/wiki/ANSI_escape_code
    z[34mz[1mz[90mz[32mz[31mr   z[4mz[33mNÚ_enabledr	   r   c                 ó   — || _         y r   )r0   )Úclsr	   s     r   Úset_enabledzANSI.set_enabledI   s	   € àˆ�r   Úsc                 ó:   — | j                  || j                  «      S r   )Ú_formatÚ_blue©r2   r4   s     r   Úbluez	ANSI.blueM   ó   € à�{‰{˜1˜cŸi™iÓ(Ð(r   c                 ó:   — | j                  || j                  «      S r   )r6   Ú_boldr8   s     r   Úboldz	ANSI.boldQ   r:   r   c                 ó:   — | j                  || j                  «      S r   )r6   Ú_grayr8   s     r   Úgrayz	ANSI.grayU   r:   r   c                 ó:   — | j                  || j                  «      S r   )r6   Ú_greenr8   s     r   Úgreenz
ANSI.greenY   s   € à�{‰{˜1˜cŸj™jÓ)Ð)r   c                 óT   — | j                  || j                  | j                  z   «      S r   )r6   r<   Ú_redr8   s     r   ÚredzANSI.red]   s    € à�{‰{˜1˜cŸi™i¨#¯(©(Ñ2Ó3Ð3r   c                 ó:   — | j                  || j                  «      S r   )r6   Ú
_underliner8   s     r   Ú	underlinezANSI.underlinea   s   € à�{‰{˜1˜cŸn™nÓ-Ð-r   c                 ó:   — | j                  || j                  «      S r   )r6   Ú_yellowr8   s     r   ÚyellowzANSI.yellowe   s   € à�{‰{˜1˜cŸk™kÓ*Ð*r   Úcodec                 ó¶   — t         j                  j                  d«      r|S | j                  �| j                  n
t	        «        }|r|› |› | j
                  › �S |S )NÚNO_COLOR)ÚosÚenvironÚgetr0   r   Ú_reset)r2   r4   rM   r	   s       r   r6   zANSI._formati   sM   € ä�:‰:�>‰>˜*Ô%àˆHØ"%§,¡,Ð":�#—,’,ÄHÃJÀˆÙ+2�$�˜�s˜3Ÿ:™:˜,Ð'Ð9¸Ð9r   )r'   r(   r)   r*   r7   r<   r?   rB   rE   rS   rH   rK   r0   r+   Ú__annotations__Úclassmethodr3   r,   r9   r=   r@   rC   rF   rI   rL   r6   r-   r   r   r/   r/   :   sv  … ñð €EØ€EØ€EØ€FØ€DØ€FØ€JØ€GØ €Hˆd�T‰kÓ àð $ð ¨4ò ó ðð ð)�Sð )˜Sò )ó ð)ð ð)�Sð )˜Sò )ó ð)ð ð)�Sð )˜Sò )ó ð)ð ð*�cð *˜cò *ó ð*ð ð4�Cð 4˜Cò 4ó ð4ð ð.˜#ð . #ò .ó ð.ð ð+�sð +˜sò +ó ð+ð ð:˜ð : 3ð :¨3ò :ó ñ:r   r/   ÚpromptÚchoicesr   c                 ó`   — |st        d«      ‚t        «       rt        | |«      S t        | |«      S )as  Single-choice interactive prompt. Returns the index of the selected choice.

    On a TTY, renders an arrow-key menu (Up/Down to move, Enter to confirm, 1-9 to pick
    directly, Ctrl+C to abort). Falls back to a numbered `input()` prompt when raw
    keyboard input is not available. Callers are responsible for not prompting at all in
    non-interactive contexts.
    z-select_choice() requires at least one choice.)Ú
ValueErrorÚ_supports_raw_keyboardÚ_select_with_arrowsÚ_select_with_numbers)rV   rW   s     r   Úselect_choicer]   r   s3   € ñ ÜÐHÓIÐIÜÔÜ" 6¨7Ó3Ð3Ü ¨Ó0Ð0r   c                  óØ   — t         j                  r<t         j                  j                  «       rt         j                  j                  «       syt         j                  dk(  r
t        «       S y)NFr   T)r   Ústdinr   ÚstdoutÚplatformÚ_enable_windows_vt_processingr-   r   r   rZ   rZ   �   sB   € Ü�IŠIœ#Ÿ)™)×*Ñ*Ô,´·±×1BÑ1BÔ1DØÜ
‡|�|�wÒÜ,Ó.Ð.Ør   c                  óD  — d} d}	 t         j                  j                  }|j                  |«      }t        j                  «       }|j                  |t        j                  |«      «      syt        |j                  ||j                  | z  «      «      S # t        $ r Y yw xY w)u¸   Enable VT escape-sequence processing on the Windows console (off by default in legacy
    cmd.exe/PowerShell windows, where the menu would otherwise render as literal `â†�[K` garbage).r   iõÿÿÿF)ÚctypesÚwindllÚkernel32ÚGetStdHandleÚc_uint32ÚGetConsoleModeÚbyrefr+   ÚSetConsoleModeÚvalueÚ	Exception)Ú"ENABLE_VIRTUAL_TERMINAL_PROCESSINGÚSTD_OUTPUT_HANDLErf   ÚhandleÚmodes        r   rb   rb   ‰   s‘   € ð *0Ð&ØÐðÜ—=‘=×)Ñ)ˆØ×&Ñ&Ð'8Ó9ˆÜ�‰Ó ˆØ×&Ñ& v¬v¯|©|¸DÓ/AÔBØÜ�H×+Ñ+¨F°D·J±JÐAcÑ4cÓdÓeÐeøÜò Ùðús   †A$B Á+'B Â	BÂBc               #   ót  K  — t         j                  dk(  rd–— yt         j                  j                  «       } t	        j
                  | «      }	 t        j                  | «       d–— t	        j                  | t        j                  |«       y# t	        j                  | t        j                  |«       w xY w­w)zRPut the terminal in cbreak mode (read keypresses without Enter). No-op on Windows.r   N)
r   ra   r_   ÚfilenoÚtermiosÚ	tcgetattrÚttyÚ	setcbreakÚ	tcsetattrÚ	TCSADRAIN)ÚfdÚold_settingss     r   Ú_raw_terminalr|   ™   s€   è ø€ ô ‡|�|�wÒÛØä	�‰×	Ñ	Ó	€BÜ×$Ñ$ RÓ(€Lð?Ü�‰�bÔÛä×Ñ˜"œg×/Ñ/°Õ>øŒ×Ñ˜"œg×/Ñ/°Õ>üs   ‚AB8ÁB Á(&B8Â'B5Â5B8c                  ó6  — t         j                  dk(  rAt        j                  «       } | dv r'dddœj	                  t        j                  «       d«      S | S t         j
                  j                  «       }t        j                  |d«      } | dk(  r{t        j                  |gg g d	«      d
   r_t        j                  |d«      dk(  rEt        j                  |gg g d	«      d
   r)dddœj	                  t        j                  |d«      d«      S y| j                  d¬«      S )z9Read one keypress, normalizing arrow keys to "up"/"down".r   )ú õ   Ã ÚupÚdown)ÚHÚPÚ r   ó   gš™™™™™©?r   ó   [)ó   Aó   BÚreplace)Úerrors)r   ra   ÚmsvcrtÚgetwchrR   r_   rs   rP   ÚreadÚselectÚdecode)Úcharrz   s     r   Ú	_read_keyr‘   ©   sç   € ä
‡|�|�wÒÜ�}‰}‹ˆØÐ#Ñ#Ø FÑ+×/Ñ/´·±³ÀÓDÐDØˆô 
�‰×	Ñ	Ó	€BÜ�7‰7�2�q‹>€Dàˆw‚œ6Ÿ=™=¨"¨¨r°2°tÓ<¸QÒ?Ü�7‰7�2�q‹>˜TÒ!¤f§m¡m°R°D¸"¸bÀ$Ó&GÈÒ&JØ fÑ-×1Ñ1´"·'±'¸"¸a³.À"ÓEÐEØØ�;‰;˜iˆ;Ó(Ð(r   c                 ób  ‡‡— dŠt        t        j                  d| › �«      t        j                  d«      z   «       dˆˆfd„}	 t        j
                  j                  d«        |«        t        «       5  	 t        «       }|dk(  rt        ‚|dk(  r‰dz
  t        ‰«      z  Šn\|d	k(  r‰dz   t        ‰«      z  ŠnE|j                  «       r/dt        |«      cxk  rt        ‰«      k  rn nt        |«      dz
  Šn:|d
v rn5Œ‰t        j
                  j                  dt        ‰«      › d�«        |«        Œ¼d d d «       t        j
                  j                  d«       t        j
                  j                  «        t        j
                  j                  dt        ‰«      dz   › d�«       t        t        j                  d| › d�«      t        j                  ‰‰   «      z   «       ‰S # 1 sw Y   Œ²xY w# t        j
                  j                  d«       t        j
                  j                  «        w xY w)Nr   ú? z   [Use arrows, Enter to confirm]c                  ó  •— t        ‰«      D ]]  \  } }| ‰k(  r+t        j                  d«      t        j                  |«      z   nd|z   }t        j
                  j                  d|› d�«       Œ_ t        j
                  j                  «        y )Nz> ú  z[Kú
)Ú	enumerater/   rC   r=   r   r`   r    r!   )ÚiÚchoiceÚlinerW   Úselecteds      €€r   Úrenderz#_select_with_arrows.<locals>.renderÁ   sq   ø€ Ü" 7Ó+ò 	2‰IˆAˆvØ;<Àº=”4—:‘:˜dÓ#¤d§i¡i°Ó&7Ò7ÈdÐU[ÉmˆDÜ�J‰J×Ñ˜x¨ v¨RÐ0Õ1ð	2ô 	�
‰
×ÑÕr   z[?25lúr€   r   r�   )úr–   z[ÚAz[?25hzA[Jú )r   N)Úprintr/   r=   r@   r   r`   r    r|   r‘   ÚKeyboardInterruptr   Ú	isdecimalÚintr!   rC   )rV   rW   rœ   Úkeyr›   s    `  @r   r[   r[   ½   s¹  ù€ Ø€HÜ	Œ$�)‰)�b˜˜�MÓ
"¤T§Y¡YÐ/QÓ%RÑ
RÔSöðÜ�
‰
×Ñ˜Ô%ÙŒÜ‹_ñ 	ØÜ“k�Ø˜&’=ô ,Ð+Ø˜$’;Ø (¨1¡´°G³Ñ<‘HØ˜F’]Ø (¨1¡´°G³Ñ<‘HØ—]‘]”_¨¬c°#«hÔ)F¼#¸g»,Õ)FÜ" 3›x¨!™|�HØØ˜LÑ(ØàÜ—
‘
× Ñ  5¬¨W«¨°aÐ!8Ô9Ù”ð% ÷	ô* 	�
‰
×Ñ˜Ô%Ü�
‰
×ÑÔô ‡J�J×Ñ�uœS ›\¨AÑ-Ð.¨iÐ8Ô9Ü	Œ$�)‰)�b˜˜ �NÓ
#¤d§j¡j°¸Ñ1BÓ&CÑ
CÔDØ€O÷7	ð 	ûô* 	�
‰
×Ñ˜Ô%Ü�
‰
×ÑÕús%   Á0G/ Á4B>G#Ä2G/ Ç#G,Ç(G/ Ç/?H.c                 óR  — t        d| › �«       t        |d¬«      D ]  \  }}t        d|› d|› �«       Œ 	 t        d«      j                  «       }|sy|j	                  «       r.dt        |«      cxk  rt        |«      k  rn nt        |«      dz
  S t        dt        |«      › d	�«       Œs)
Nr“   r   )Ústartr•   z. zChoice [1]: r   z-Invalid choice. Enter a number between 1 and ú.)r¡   r—   ÚinputÚstripr£   r¤   r   )rV   rW   r˜   r™   Úraws        r   r\   r\   è   s¡   € Ü	ˆBˆvˆhˆ-ÔÜ˜w¨aÔ0ò "‰	ˆˆ6Ü��1�#�R˜�xÐ Õ!ð"à
Ü�NÓ#×)Ñ)Ó+ˆÙØØ�=‰=Œ?˜q¤C¨£HÔ<´°G³Õ<Ü�s“8˜a‘<ÐÜÐ=¼cÀ'»l¸^È1ÐMÔNð r   ÚrowsÚheadersÚ
alignmentsc           
      ó¼  — dddœ}| D ]@  }t        |«      t        |«      k  sŒt        dt        |«      › dt        |«      › d|› d�«      ‚ t        g | ¢|‘­Ž D �cg c]  }t        d„ |D «       «      ‘Œ }}|D �cg c](  }|j	                  |xs i j	                  |d	«      d«      ‘Œ* }}d
j                  d„ t        ||«      D «       «      }	g }
|
j                   |	j                  |Ž «       |
j                   |	j                  |D �cg c]  }d|z  ‘Œ	 c}Ž «       | D ]   }|
j                   |	j                  |Ž «       Œ" dj                  |
«      S c c}w c c}w c c}w )z‰
    Inspired by:

    - stackoverflow.com/a/8356620/593036
    - stackoverflow.com/questions/9535954/printing-lists-as-tabular-data
    ú<ú>)ÚleftÚrightzRow has z values but expected z (headers: ú)c              3   óD   K  — | ]  }t        t        |«      «      –— Œ y ­wr   )r   r,   )Ú.0Úxs     r   ú	<genexpr>ztabulate.<locals>.<genexpr>  s   è ø€ Ò/ a”cœ#˜a›&—kÑ/ùs   ‚ r²   r    c              3   ó2   K  — | ]  \  }}d |› |› d�–— Œ y­w)z{:ú}Nr-   )r¶   ÚaÚws      r   r¸   ztabulate.<locals>.<genexpr>  s    è ø€ ÒQ©T¨Q°˜C ˜s 1 # Rœ.ÑQùs   ‚ú-r–   )r   Ú
IndexErrorÚzipÚmaxrR   ÚjoinÚappendÚformat)r¬   r­   r®   Ú
_ALIGN_MAPÚrowÚcolÚ
col_widthsÚhÚ
col_alignsÚ
row_formatÚlinesr¼   s               r   ÚtabulaterÌ   õ   sc  € ð ¨Ñ,€JØò lˆÜˆs‹8”c˜'“lÓ"Ü˜x¬¨C« zÐ1FÄsÈ7Ã|ÀnÐT_Ð`gÐ_hÐhiÐjÓkÐkðlô <?Ð;NÀÐ;NÀgÒ;NÖO°C”#Ñ/¨3Ô/Õ/ÐO€JÐOØRYÖZÈQ�*—.‘. *Ò"2°×!7Ñ!7¸¸6Ó!BÀCÕHÐZ€JÐZØ—‘ÑQ´S¸ÀZÓ5PÔQÓQ€JØ€EØ	‡L�LÐ"�×"Ñ" GÐ,Ô-Ø	‡L�LÐ"�×"Ñ"°jÖ$A° S¨1£WÒ$AÐBÔCØò .ˆØ�‰Ð&�Z×&Ñ&¨Ð,Õ-ð.à�9‰9�UÓÐùò PùÚZùò %Bs   ÁEÁ9-EÄEr   )r*   rd   rP   r   r   Ú
contextlibr   Ú_detect_agentr   ra   r‹   rŽ   rt   rv   r   r/   r,   Úlistr¤   r]   r+   rZ   rb   r|   r‘   r[   r\   ÚdictrÌ   r-   r   r   ú<module>rÑ      s/  ðñ Lã Û 	Û Û 
Ý %å #ð ‡<�<�7ÒÜãÛÛ÷ñ ÷25:ñ 5:ðp1˜#ð 1¨¨S©	ð 1°có 1ð ó ð tó ð  ñ?ó ð?ð)�3ó )ð(( ð (¨d°3©ið (¸Có (ðV
O ð 
O¨t°C©yð 
O¸Só 
Oð  )-ñØ
ˆt�C˜#‘I‰Ñ
ðà�#‰Yðð �S˜#�X‘ Ñ%ðð 	ô	r   