
    i
                     \    d Z ddlmZ ddlZdZddZd Zd Zd	 ZddZ	d Z
d Zd Zd ZdS )z3Formatting utilities for use in creating help text.    )formatting_windowsNz...   c                 p    |                      d          }d                    fd|D                       S )N
c              3   0   K   | ]}|rd z  |z   n|V  dS ) N ).0linespacess     V/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/fire/formatting.py	<genexpr>zIndent.<locals>.<genexpr>   sJ        
 "+cFlTt         )splitjoin)textr   liness    ` r   Indentr      sP    
**T

%	       
 
 r   c                 0    t          j        | dg          S )Nboldattrs	termcolorcoloredr   s    r   Boldr      s    		4x	0	0	00r   c                 0    t          j        | dg          S )N	underliner   r   r   s    r   	Underliner    #   s    		4}	5	5	55r   c                 :    t          t          |                     S )N)r   r    r   s    r   BoldUnderliner"   '   s    	ioo		r    | P   c                    g }d}t          |           D ]\  }}|t          |           dz
  k    }|rSt          |          t          |          z   |k    r||z  }F|                    |                                           |}pt          |          t          |          z   t          |          z   |k    r	|||z   z  }|                    |                                           ||z   }|                    |           |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_items           r   WrappedJoinr3   +   s   
%,u%% ( (keTSZZ!^+M (	\		SYY	&%	/	/\((**+++	\		SYY	&Y	75	@	@y((\((**+++i',,|	,r   c                 2    t          j        | ddg          S )Nredr   )colorr   r   r   s    r   Errorr7   B   s    		4uVH	=	=	==r   c                     |t          t                    k     r|}t          |           |k    r| S | d|t          t                    z
           t          z   S )z)Truncate text from the end with ellipsis.N)r)   ELLIPSIS)r   available_spaceline_lengths      r   EllipsisTruncater<   F   sO    s8}}$$!OYY/!!K	.X..	/(	::r   c                     |t          t                    k     r|}t          |           |k     r| S |t          t                    z
  }t          |dz            }||z
  }| d|         t          z   | | d         z   S )z-Truncates text from the middle with ellipsis.r   N)r)   r9   int)r   r:   r;   available_string_lenfirst_half_lensecond_half_lens         r   EllipsisMiddleTruncaterB   P   s    s8}}$$!OYY  K(3x==8+a/00.(>9/	o~o		)D/1A1B1B,C	CCr   c                     d| z  S )Nz"%s"r	   r   s    r   DoubleQuoterD   \   s    	$r   )r   )r#   r$   )__doc__firer   r   r9   r   r   r    r"   r3   r7   r<   rB   rD   r	   r   r   <module>rG      s    : 9 # # # # # #        1 1 16 6 6     .> > >; ; ;	D 	D 	D    r   