o
    Ďi
                     @   sl   d Z ddlmZ ddlZdZdddZdd	 Zd
d Zdd ZdddZ	dd Z
dd Zdd Zdd ZdS )z3Formatting utilities for use in creating help text.    )formatting_windowsNz...   c                    s"   |  d}d fdd|D S )N
c                 3   s$    | ]}|rd   | n|V  qdS ) N ).0linespacesr   K/home/jeff/fluffinator/venv/lib/python3.10/site-packages/fire/formatting.py	<genexpr>   s
    
zIndent.<locals>.<genexpr>)splitjoin)textr
   linesr   r	   r   Indent   s   
r   c                 C      t j| dgdS )Nboldattrs	termcolorcoloredr   r   r   r   Bold      r   c                 C   r   )N	underliner   r   r   r   r   r   	Underline#   r   r   c                 C   s   t t| S )N)r   r   r   r   r   r   BoldUnderline'   s   r    | P   c                 C   s   g }d}t | D ]G\}}|t| d k}|r/t|t| |kr%||7 }q||  |}qt|t| t| |krD||| 7 }q||  || }q|| |S )zDJoins the items by the separator, wrapping lines at the given width.    )	enumeratelenappendrstrip)items	separatorwidthr   current_lineindexitemis_final_itemr   r   r   WrappedJoin+   s   


r.   c                 C   s   t j| ddgdS )Nredr   )colorr   r   r   r   r   r   ErrorB   s   r1   c                 C   s8   |t tk r|}t | |kr| S | d|t t  t S )z)Truncate text from the end with ellipsis.N)r$   ELLIPSIS)r   available_spaceline_lengthr   r   r   EllipsisTruncateF   s
   r5   c                 C   s^   |t tk r|}t | |k r| S |t t }t|d }|| }| d| t | | d  S )z-Truncates text from the middle with ellipsis.r   N)r$   r2   int)r   r3   r4   available_string_lenfirst_half_lensecond_half_lenr   r   r   EllipsisMiddleTruncateP   s   r:   c                 C   s   d|  S )Nz"%s"r   r   r   r   r   DoubleQuote\   s   r;   )r   )r   r    )__doc__firer   r   r2   r   r   r   r   r.   r1   r5   r:   r;   r   r   r   r   <module>   s   


