o
    iC                     @   sT   d Z ddlZddlmZ G dd dZdeeeeef   dee defd	d
ZdS )zEContains utilities to print stuff to the terminal (styling, helpers).    N)Unionc                   @   s   e Zd ZdZdZdZdZdZdZe	de
de
fd	d
Ze	de
de
fddZe	de
de
fddZe	de
de
fddZe	de
de
de
fddZdS )ANSIz;
    Helper for en.wikipedia.org/wiki/ANSI_escape_code
    z[1mz[90mz[31mz[0mz[33msreturnc                 C      |  || jS N)_format_boldclsr    r   e/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/huggingface_hub/utils/_terminal.pybold      z	ANSI.boldc                 C   r   r   )r   _grayr
   r   r   r   gray#   r   z	ANSI.grayc                 C   s   |  || j| j S r   )r   r	   _redr
   r   r   r   red'   s   zANSI.redc                 C   r   r   )r   _yellowr
   r   r   r   yellow+   r   zANSI.yellowcodec                 C   s"   t jdr|S | | | j S )NNO_COLOR)osenvironget_reset)r   r   r   r   r   r   r   /   s   zANSI._formatN)__name__
__module____qualname____doc__r	   r   r   r   r   classmethodstrr   r   r   r   r   r   r   r   r   r      s"    r   rowsheadersr   c                 C   s   dd t g | |R  D }dt| j| }g }||j|  ||jdd |D   | D ]
}||j|  q0d|S )z
    Inspired by:

    - stackoverflow.com/a/8356620/593036
    - stackoverflow.com/questions/9535954/printing-lists-as-tabular-data
    c                 S   s   g | ]}t d d |D qS )c                 s   s    | ]	}t t|V  qd S r   )lenr!   ).0xr   r   r   	<genexpr>>   s    z&tabulate.<locals>.<listcomp>.<genexpr>)max)r%   colr   r   r   
<listcomp>>   s    ztabulate.<locals>.<listcomp>z{{:{}}} c                 S   s   g | ]}d | qS )-r   )r%   wr   r   r   r*   B   s    
)zipr$   formatappendjoin)r"   r#   
col_widths
row_formatlinesrowr   r   r   tabulate7   s   
r6   )	r   r   typingr   r   listr!   intr6   r   r   r   r   <module>   s
   .#