Ë
    -Œ: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     úa/var/www/html/tokenscope/api/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                   ó  — e Zd ZdZdZdZdZdZdZdZ	dZ
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[33mÚsr   c                 ó:   — | j                  || j                  «      S r   )Ú_formatÚ_blue©Úclsr0   s     r   Úbluez	ANSI.blueH   ó   € à�{‰{˜1˜cŸi™iÓ(Ð(r   c                 ó:   — | j                  || j                  «      S r   )r2   Ú_boldr4   s     r   Úboldz	ANSI.boldL   r7   r   c                 ó:   — | j                  || j                  «      S r   )r2   Ú_grayr4   s     r   Úgrayz	ANSI.grayP   r7   r   c                 ó:   — | j                  || j                  «      S r   )r2   Ú_greenr4   s     r   Úgreenz
ANSI.greenT   s   € à�{‰{˜1˜cŸj™jÓ)Ð)r   c                 óT   — | j                  || j                  | j                  z   «      S r   )r2   r9   Ú_redr4   s     r   ÚredzANSI.redX   s    € à�{‰{˜1˜cŸi™i¨#¯(©(Ñ2Ó3Ð3r   c                 ó:   — | j                  || j                  «      S r   )r2   Ú
_underliner4   s     r   Ú	underlinezANSI.underline\   s   € à�{‰{˜1˜cŸn™nÓ-Ð-r   c                 ó:   — | j                  || j                  «      S r   )r2   Ú_yellowr4   s     r   ÚyellowzANSI.yellow`   s   € à�{‰{˜1˜cŸk™kÓ*Ð*r   Úcodec                 ó|   — t         j                  j                  d«      s
t        «       r|S |› |› | j                  › �S )NÚNO_COLOR)ÚosÚenvironÚgetr   Ú_reset)r5   r0   rJ   s      r   r2   zANSI._formatd   s2   € ä�:‰:�>‰>˜*Ô%¬¬àˆHØ�˜�s˜3Ÿ:™:˜,Ð'Ð'r   N)r'   r(   r)   r*   r3   r9   r<   r?   rB   rP   rE   rH   Úclassmethodr,   r6   r:   r=   r@   rC   rF   rI   r2   r-   r   r   r/   r/   :   sF  „ ñð €EØ€EØ€EØ€FØ€DØ€FØ€JØ€Gàð)�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)rR   rS   s     r   Úselect_choicerY   l   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   rV   rV   {   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_HANDLErb   ÚhandleÚmodes        r   r^   r^   ƒ   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   r]   r[   ÚfilenoÚtermiosÚ	tcgetattrÚttyÚ	setcbreakÚ	tcsetattrÚ	TCSADRAIN)ÚfdÚold_settingss     r   Ú_raw_terminalrx   “   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   r]   ÚmsvcrtÚgetwchrO   r[   ro   rM   ÚreadÚselectÚdecode)Úcharrv   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/   r@   r:   r   r\   r    r!   )ÚiÚchoiceÚlinerS   Ú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    rx   r�   ÚKeyboardInterruptr   Ú	isdecimalÚintr!   r@   )rR   rS   r˜   Úkeyr—   s    `  @r   rW   rW   ·   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   )rR   rS   r”   r•   Úraws        r   rX   rX   â   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ÚmaxrO   Ú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*   r`   rM   r   r   Ú
contextlibr   Ú_detect_agentr   r]   r‡   rŠ   rp   rr   r   r/   r,   Úlistr    rY   r+   rV   r^   rx   r�   rW   rX   ÚdictrÈ   r-   r   r   ú<module>rÍ      s/  ðñ Lã Û 	Û Û 
Ý %å #ð ‡<�<�7ÒÜãÛÛ÷ñ ÷2/(ñ /(ðd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   