o
    Zb
                     @   s   d Z ddlmZ ddlmZ ddlm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.    )absolute_import)division)print_function)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	   ?D:\Projects\ConvertPro\env\Lib\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	termcolorZcoloredr   r	   r	   r   Bold#      r   c                 C   r   )NZ	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itemZis_final_itemr	   r	   r   WrappedJoin/   s   


r.   c                 C   s   t j| ddgdS )NZredr   )Zcolorr   r   r   r	   r	   r   ErrorF   s   r/   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   EllipsisTruncateJ   s
   r3   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%   r0   int)r   r1   r2   Zavailable_string_lenZfirst_half_lenZsecond_half_lenr	   r	   r   EllipsisMiddleTruncateT   s   r5   c                 C   s   d|  S )Nz"%s"r	   r   r	   r	   r   DoubleQuote`   s   r6   )r   )r    r!   )__doc__Z
__future__r   r   r   firer   r   r0   r   r   r   r   r.   r/   r3   r5   r6   r	   r	   r	   r   <module>   s    


