
    i              	           d Z ddlZddlZddlZ G d d      Z G d 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).    Nc                   >    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     p/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/huggingface_hub/utils/_terminal.py__init__zStatusLine.__init__   s    63::#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 )N      ...	[K[90m[0m	r   shutilget_terminal_sizecolumnslenr   r	   writeflushr   r   widths      r   updatezStatusLine.update   sq    ||((*22s8eaik	"U*C

+C5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.done$   sq    ||((*22s8eaik	"U*C

+C5	:;

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
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[33msr   c                 :    | j                  || j                        S r   )_format_blueclsr-   s     r   bluez	ANSI.blue;       {{1cii((r   c                 :    | j                  || j                        S r   )r/   _boldr1   s     r   boldz	ANSI.bold?   r4   r   c                 :    | j                  || j                        S r   )r/   _grayr1   s     r   grayz	ANSI.grayC   r4   r   c                 :    | j                  || j                        S r   )r/   _greenr1   s     r   greenz
ANSI.greenG   s    {{1cjj))r   c                 T    | j                  || j                  | j                  z         S r   )r/   r6   _redr1   s     r   redzANSI.redK   s     {{1cii#((233r   c                 :    | j                  || j                        S r   )r/   _yellowr1   s     r   yellowzANSI.yellowO   s    {{1ckk**r   codec                 h    t         j                  j                  d      r|S | | | j                   S )NNO_COLOR)osenvironget_reset)r2   r-   rD   s      r   r/   zANSI._formatS   s.    ::>>*%Hs3::,''r   N)r$   r%   r&   r'   r0   r6   r9   r<   r?   rJ   rB   classmethodr)   r3   r7   r:   r=   r@   rC   r/   r*   r   r   r,   r,   .   s    EEEFDFG)S )S ) ) )S )S ) ) )S )S ) ) *c *c * * 4C 4C 4 4 +s +s + + ( (3 (3 ( (r   r,   rowsheaders
alignmentsr   c           
         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>j   s     /ac#a&k/s    rR    c              3   2   K   | ]  \  }}d | | d  yw)z{:}Nr*   )rV   aws      r   rX   ztabulate.<locals>.<genexpr>l   s      QTQCs1#R.Qs   -
)r   
IndexErrorzipmaxrI   joinappendformat)rL   rM   rN   
_ALIGN_MAProwcol
col_widthsh
col_aligns
row_formatlinesr]   s               r   tabulatern   [   sc    ,J ls8c'l"xCz1Fs7|nT_`g_hhijkkl <?;N;Ng;NOC#/3//OJORYZQ*..*"2!7!76!BCHZJZQSZ5PQQJE	LL"""G,-	LL"""j$AS1W$ABC .&Z&&,-.99U PZ %Bs   E9-EEr   )r'   rG   r   r   r   r,   listr)   intdictrn   r*   r   r   <module>rr      su    L 	  
 2*( *(` )-
tC#I
#Y S#X% 		r   