§
    ìXÊj$$  ã            	       ó¤  — 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dS )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dS )Ú
StatusLinezJMinimal TTY status line for sync progress (stderr, single-line overwrite).TÚenabledc                 óP   — |ot           j                             ¦   «         | _        d S ©N)ÚsysÚstderrÚisattyÚ_active)Úselfr	   s     úPC:\Projects\Historical\venv\Lib\site-packages\huggingface_hub/utils/_terminal.pyÚ__init__zStatusLine.__init__$   s    € ØÐ6¥3¤:×#4Ò#4Ñ#6Ô#6ˆŒˆˆó    ÚmsgÚreturnNc                 ó  — | j         sd S t          j        ¦   «         j        }t	          |¦  «        |dz
  k    r|d |dz
  …         dz   }t
          j                             d|› d�¦  «         t
          j                             ¦   «          d S )Nr   é   ú...ú	[K[90mú[0m©	r   ÚshutilÚget_terminal_sizeÚcolumnsÚlenr   r   ÚwriteÚflush©r   r   Úwidths      r   ÚupdatezStatusLine.update'   sŠ   € ØŒ|ð 	ØˆFÝÔ(Ñ*Ô*Ô2ˆÝˆs‰8Œ8�e˜a‘iÒÐØ�k˜ ™	�kÔ" UÑ*ˆCÝŒ
×ÒÐ8¨CÐ8Ð8Ð8Ñ9Ô9Ð9ÝŒ
×ÒÑÔÐÐÐr   c                 ó  — | j         sd S t          j        ¦   «         j        }t	          |¦  «        |dz
  k    r|d |dz
  …         dz   }t
          j                             d|› d�¦  «         t
          j                             ¦   «          d S )Nr   r   r   r   z[0m
r   r"   s      r   ÚdonezStatusLine.done0   sŠ   € ØŒ|ð 	ØˆFÝÔ(Ñ*Ô*Ô2ˆÝˆs‰8Œ8�e˜a‘iÒÐØ�k˜ ™	�kÔ" UÑ*ˆCÝŒ
×ÒÐ:¨CÐ:Ð:Ð:Ñ;Ô;Ð;ÝŒ
×ÒÑÔÐÐÐr   )T)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úboolr   Ústrr$   r&   © r   r   r   r   !   s~   € € € € € ØTÐTð7ð 7 ð 7ð 7ð 7ð 7ð˜#ð  $ð ð ð ð ð˜ð  ð ð ð ð ð ð r   r   c                   ól  — 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d
S )ÚANSIz;
    Helper for en.wikipedia.org/wiki/ANSI_escape_code
    z[34mz[1mz[90mz[32mz[31mr   z[4mz[33mNÚ_enabledr	   r   c                 ó   — || _         d S r   )r0   )Úclsr	   s     r   Úset_enabledzANSI.set_enabledI   s   € àˆŒˆˆr   Úsc                 ó8   — |                       || j        ¦  «        S r   )Ú_formatÚ_blue©r2   r4   s     r   Úbluez	ANSI.blueM   ó   € à�{Š{˜1˜cœiÑ(Ô(Ð(r   c                 ó8   — |                       || j        ¦  «        S r   )r6   Ú_boldr8   s     r   Úboldz	ANSI.boldQ   r:   r   c                 ó8   — |                       || j        ¦  «        S r   )r6   Ú_grayr8   s     r   Úgrayz	ANSI.grayU   r:   r   c                 ó8   — |                       || j        ¦  «        S r   )r6   Ú_greenr8   s     r   Úgreenz
ANSI.greenY   s   € à�{Š{˜1˜cœjÑ)Ô)Ð)r   c                 óH   — |                       || j        | j        z   ¦  «        S r   )r6   r<   Ú_redr8   s     r   ÚredzANSI.red]   s   € à�{Š{˜1˜cœi¨#¬(Ñ2Ñ3Ô3Ð3r   c                 ó8   — |                       || j        ¦  «        S r   )r6   Ú
_underliner8   s     r   Ú	underlinezANSI.underlinea   s   € à�{Š{˜1˜cœnÑ-Ô-Ð-r   c                 ó8   — |                       || j        ¦  «        S r   )r6   Ú_yellowr8   s     r   ÚyellowzANSI.yellowe   s   € à�{Š{˜1˜cœkÑ*Ô*Ð*r   Úcodec                 ó    — t           j                             d¦  «        r|S | j        �| j        nt	          ¦   «          }|r|› |› | j        › �n|S )NÚNO_COLOR)ÚosÚenvironÚgetr0   r   Ú_reset)r2   r4   rM   r	   s       r   r6   zANSI._formati   sW   € åŒ:�>Š>˜*Ñ%Ô%ð 	àˆHØ"%¤,Ð":�#”,�,ÅHÁJÄJÀˆØ+2Ð9�$Ð'˜Ð'˜3œ:Ð'Ð'Ð'¸Ð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/   :   s  € € € € € € ðð ð €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ð 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   sJ   € ð ð JÝÐHÑIÔIÐIÝÑÔð 4Ý" 6¨7Ñ3Ô3Ð3Ý ¨Ñ0Ô0Ð0r   c                  óÖ   — t           j        r<t           j                             ¦   «         rt           j                             ¦   «         sdS t           j        dk    rt          ¦   «         S dS )NFr   T)r   Ústdinr   ÚstdoutÚplatformÚ_enable_windows_vt_processingr-   r   r   rZ   rZ   �   sY   € ÝŒIð �#œ)×*Ò*Ñ,Ô,ð µ´×1BÒ1BÑ1DÔ1Dð ØˆuÝ
„|�wÒÐÝ,Ñ.Ô.Ð.Øˆ4r   c                  óJ  — d} d}	 t           j        j        }|                     |¦  «        }t          j        ¦   «         }|                     |t          j        |¦  «        ¦  «        sdS t          |                     ||j	        | z  ¦  «        ¦  «        S # t          $ r Y dS 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Ô9ˆÝŒÑ Ô ˆØ×&Ò& v­v¬|¸DÑ/AÔ/AÑBÔBð 	Ø�5Ý�H×+Ò+¨F°D´JÐAcÑ4cÑdÔdÑeÔeÐeøÝð ð ð Øˆuˆuðøøøs   †A!B Á)*B Â
B"Â!B"c               #   óV  K  — t           j        dk    rdV — dS t           j                             ¦   «         } t	          j        | ¦  «        }	 t          j        | ¦  «         dV — t	          j        | t          j	        |¦  «         dS # t	          j        | t          j	        |¦  «         w xY 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   ÁB Â"B(c                  óL  — t           j        dk    rCt          j        ¦   «         } | dv r*dddœ                     t          j        ¦   «         d¦  «        S | S t           j                             ¦   «         }t          j        |d¦  «        } | dk    rƒt          j	        |gg g d	¦  «        d
         ret          j        |d¦  «        dk    rJt          j	        |gg g d	¦  «        d
         r,dddœ                     t          j        |d¦  «        d¦  «        S dS |  
                    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ÐDØˆõ 
Œ×	Ò	Ñ	Ô	€BÝŒ7�2�q‰>Œ>€Dàˆw‚€�6œ=¨"¨¨r°2°tÑ<Ô<¸QÔ?€ÝŒ7�2�q‰>Œ>˜TÒ!Ð!¥f¤m°R°D¸"¸bÀ$Ñ&GÔ&GÈÔ&JÐ!Ø fÐ-Ð-×1Ò1µ"´'¸"¸a±.´.À"ÑEÔEÐEØˆrØ�;Š;˜iˆ;Ñ(Ô(Ð(r   c                 ó  ‡‡— dŠt          t                               d| › �¦  «        t                               d¦  «        z   ¦  «         dˆˆfd„}	 t          j                             d¦  «          |¦   «          t          ¦   «         5  	 t          ¦   «         }|dk    rt          ‚|d	k    r‰d
z
  t          ‰¦  «        z  Šns|dk    r‰d
z   t          ‰¦  «        z  ŠnW|                     ¦   «         r=d
t          |¦  «        cxk    rt          ‰¦  «        k    rn nt          |¦  «        d
z
  ŠnA|dv rn<Œ«t          j                             dt          ‰¦  «        › d�¦  «          |¦   «          Œåd d d ¦  «         n# 1 swxY w Y   t          j                             d¦  «         t          j                             ¦   «          nB# t          j                             d¦  «         t          j                             ¦   «          w xY wt          j                             dt          ‰¦  «        d
z   › d�¦  «         t          t                               d| › d�¦  «        t                               ‰‰         ¦  «        z   ¦  «         ‰S )Nr   ú? z   [Use arrows, Enter to confirm]r   c                  ó4  •— t          ‰¦  «        D ]h\  } }| ‰k    r5t                               d¦  «        t                               |¦  «        z   nd|z   }t          j                             d|› d�¦  «         Œit          j                             ¦   «          d S )Nz> ú  z[Kú
)Ú	enumerater/   rC   r=   r   r`   r    r!   )ÚiÚchoiceÚlinerW   Úselecteds      €€r   Úrenderz#_select_with_arrows.<locals>.renderÁ   s‘   ø€ Ý" 7Ñ+Ô+ð 	2ð 	2‰IˆAˆvØ;<Àº=¸=•4—:’:˜dÑ#Ô#¥d§i¢i°Ñ&7Ô&7Ñ7Ð7ÈdÐU[ÉmˆDÝŒJ×ÒÐ0¨Ð0Ð0Ð0Ñ1Ô1Ð1Ð1ÝŒ
×ÒÑÔÐÐÐr   z[?25lTú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Ý	�$�)Š)�M˜�M�MÑ
"Ô
"¥T§Y¢YÐ/QÑ%RÔ%RÑ
RÑSÔSÐSðð ð ð ð ð ð ðÝŒ
×Ò˜Ñ%Ô%Ð%Øˆ‰ŒˆÝ‰_Œ_ð 	ð 	ðÝ‘k”k�Ø˜&’=�=õ ,Ð+Ø˜$’;�;Ø (¨1¡µ°G±´Ñ<�H�HØ˜F’]�]Ø (¨1¡µ°G±´Ñ<�H�HØ—]’]‘_”_ð ¨­c°#©h¬hÐ)FÐ)FÒ)FÐ)F½#¸g¹,¼,Ò)FÐ)FÐ)FÐ)FÐ)FÝ" 3™xœx¨!™|�HØØ˜LÐ(Ð(ØàÝ”
× Ò Ð!8­¨W©¬Ð!8Ð!8Ð!8Ñ9Ô9Ð9Ø�‘”�ð%ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ* 	Œ
×Ò˜Ñ%Ô%Ð%ÝŒ
×ÒÑÔÐÐøõ 	Œ
×Ò˜Ñ%Ô%Ð%ÝŒ
×ÒÑÔÐÐøøøõ „J×ÒÐ8�S ™\œ\¨AÑ-Ð8Ð8Ð8Ñ9Ô9Ð9Ý	�$�)Š)�N˜�N�N�NÑ
#Ô
#¥d§j¢j°¸Ô1BÑ&CÔ&CÑ
CÑDÔDÐDØ€Os1   Á7G Â	C'E<Å0G Å<F Æ G ÆF ÆG Ç?Hc                 ó¬  — t          d| › �¦  «         t          |d¬¦  «        D ]\  }}t          d|› d|› �¦  «         Œ	 t          d¦  «                             ¦   «         }|sdS |                     ¦   «         r<dt          |¦  «        cxk    rt          |¦  «        k    rn nt          |¦  «        dz
  S t          d	t          |¦  «        › d
�¦  «         Œ–)Nr“   r   )Ústartr•   z. Tz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÷   € Ý	ˆ-ˆvˆ-ˆ-ÑÔÐÝ˜w¨aÐ0Ñ0Ô0ð "ð "‰	ˆˆ6ÝÐ �1Ð Ð ˜Ð Ð Ñ!Ô!Ð!Ð!ðOÝ�NÑ#Ô#×)Ò)Ñ+Ô+ˆØð 	Ø�1Ø�=Š=‰?Œ?ð 	 ˜q¥C¨¡H¤HÐ<Ð<Ò<Ð<µ°G±´Ò<Ð<Ð<Ð<Ð<Ý�s‘8”8˜a‘<ÐÝÐM½cÀ'¹l¼lÐMÐMÐMÑNÔNÐNðOr   ÚrowsÚheadersÚ
alignmentsc           
      ób  ‡‡— dddœŠ| D ]U}t          |¦  «        t          |¦  «        k     r3t          dt          |¦  «        › dt          |¦  «        › d|› d�¦  «        ‚ŒVd„ t          g | ¢|‘R Ž D ¦   «         }ˆˆfd	„|D ¦   «         }d
                     d„ t          ||¦  «        D ¦   «         ¦  «        }g }|                      |j        |Ž ¦  «         |                      |j        d„ |D ¦   «         Ž ¦  «         | D ]}|                      |j        |Ž ¦  «         Œ d                     |¦  «        S )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                 ó@   — g | ]}t          d „ |D ¦   «         ¦  «        ‘ŒS )c              3   óN   K  — | ] }t          t          |¦  «        ¦  «        V — Œ!d S r   )r   r,   )Ú.0Úxs     r   ú	<genexpr>z&tabulate.<locals>.<listcomp>.<genexpr>  s.   è è € Ð/Ð/ a•c�#˜a™&œ&‘k”kÐ/Ð/Ð/Ð/Ð/Ð/r   )Úmax)r·   Úcols     r   ú
<listcomp>ztabulate.<locals>.<listcomp>  s/   € ÐOÐOÐO°C•#Ð/Ð/¨3Ð/Ñ/Ô/Ñ/Ô/ÐOÐOÐOr   c                 óh   •— g | ].}‰                      ‰pi                       |d ¦  «        d¦  «        ‘Œ/S )r²   r°   )rR   )r·   ÚhÚ
_ALIGN_MAPr®   s     €€r   r¼   ztabulate.<locals>.<listcomp>  s<   ø€ ÐZÐZÐZÈQ�*—.’. *Ð"2°×!7Ò!7¸¸6Ñ!BÔ!BÀCÑHÔHÐZÐZÐZr   r    c              3   ó,   K  — | ]\  }}d |› |› d�V — ŒdS )z{:Ú}Nr-   )r·   ÚaÚws      r   r¹   ztabulate.<locals>.<genexpr>  s2   è è € ÐQÐQ©T¨Q°˜. ˜. 1˜.˜.˜.ÐQÐQÐQÐQÐQÐQr   c                 ó   — g | ]}d |z  ‘ŒS )ú-r-   )r·   rÃ   s     r   r¼   ztabulate.<locals>.<listcomp>	  s   € Ð$AÐ$AÐ$A° S¨1¡WÐ$AÐ$AÐ$Ar   r–   )r   Ú
IndexErrorÚzipÚjoinÚappendÚformat)	r¬   r­   r®   ÚrowÚ
col_widthsÚ
col_alignsÚ
row_formatÚlinesr¿   s	     `     @r   ÚtabulaterÐ   õ   ss  øø€ ð ¨Ð,Ð,€JØð lð lˆÝˆs‰8Œ8•c˜'‘l”lÒ"Ð"ÝÐj­¨C©¬ÐjÐjÅsÈ7Á|Ä|ÐjÐjÐ`gÐjÐjÐjÑkÔkÐkð #àOÐO½3Ð;NÀÐ;NÀgÐ;NÐ;NÐ;NÐOÑOÔO€JØZÐZÐZÐZÐZÐRYÐZÑZÔZ€JØ—’ÐQÐQµS¸ÀZÑ5PÔ5PÐQÑQÔQÑQÔQ€JØ€EØ	‡L‚LÐ"�Ô" GÐ,Ñ-Ô-Ð-Ø	‡L‚LÐ"�Ô"Ð$AÐ$A°jÐ$AÑ$AÔ$AÐBÑCÔCÐCØð .ð .ˆØ�ŠÐ&�ZÔ&¨Ð,Ñ-Ô-Ð-Ð-Ø�9Š9�UÑÔÐr   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Õ      sA  ðð LÐ Kà €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø %Ð %Ð %Ð %Ð %Ð %à #Ð #Ð #Ð #Ð #Ð #ð „<�7ÒÐØ€M€M€M€Mà€M€M€MØ€N€N€NØ€J€J€Jðð ð ð ð ñ ô ð ð25:ð 5:ð 5:ð 5:ð 5:ñ 5:ô 5:ð 5:ðp1˜#ð 1¨¨S¬	ð 1°cð 1ð 1ð 1ð 1ð ð ð ð ð ð tð ð ð ð ð  ð?ð ?ñ „ð?ð)�3ð )ð )ð )ð )ð(( ð (¨d°3¬ið (¸Cð (ð (ð (ð (ðV
O ð 
O¨t°C¬yð 
O¸Sð 
Oð 
Oð 
Oð 
Oð  )-ðð Ø
ˆt�C˜#‘IŒÔ
ðà�#ŒYðð �S˜#�X” Ñ%ðð 	ð	ð ð ð ð ð r   