
    Sh
                     B    d dl mZ d Zd ZddZd Zd Zdd
ZddZdS )    )defaultdictc                    d | D             t                    t          |           k    rt          d          	 t          t                    }d}| D ]1}||d|                           }|rd}|                    |           2|                                D ]*}t          |          dk    r|D ]}|xx         dz  cc<   +|rnfd| D             S )a  
    Given an iterable names, return the shortest prefix for each element
    so that all prefixes are different. All elements in names must be unique.

    >>> get_short_names(['cat', 'castor', 'could', 'fire', 'first'])
    ['cat', 'cas', 'co', 'fire', 'firs']

    c                     i | ]}|d S )    ).0names     T/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/treetable/text.py
<dictcomp>z#get_short_names.<locals>.<dictcomp>   s    )))4tQ)))    z%names must only contain unique valuesTNFr   c                 0    g | ]}|d |                  S Nr   )r   r	   lengthss     r
   
<listcomp>z#get_short_names.<locals>.<listcomp>   s&    333TD'$- 333r   )len
ValueErrorr   listappendvalues)namesbucketsvalidr	   bucketr   s        @r
   get_short_namesr      s    *)5)))G
7||s5zz!!@AAAd## 	  	 DT.74=.12F MM$nn&& 	' 	'F6{{Q" ' 'DDMMMQ&MMMM 	 4333U3333r   c                 ^    t          d |                     d          D             d          S )Nc              3   4   K   | ]}t          |          V  d S r   r   )r   lines     r
   	<genexpr>ztext_width.<locals>.<genexpr>"   s(      77dD		777777r   
r   )default)maxsplit)texts    r
   
text_widthr%   !   s0    77djj&6&6777CCCCr      c              #      K   |                      dd|z            } | sdV  d S t          dt          |           |          D ]}| |||z            V  d S )N	  r   )replaceranger   )r$   widthtabwidthindexs       r
   wrapr0   %   s{      <<cHn--D q#d))U++ ( (5&'''''( (r   c                     |dk    r|                      |          S |dk    r|                     |          S |dk    r|                     |          S t          d|           )N=<>zInvalid value for align )centerljustrjustr   )r$   r-   	alignments      r
   alignr9   .   sp    C{{5!!!	c		zz%   	c		zz%   ?I??@@@r   c                 B    d| d}d}d                     || |g          S )Nz[mz[0mr*   )join)r$   colorcoderestores       r
   colorizer@   9   s0    5DG77D$()))r   Nr3   c                     |                      d          }"t          t          t          |                    nfd|D             }d                    fd|D                       S )z
    Return value justified to the given width, either
    to the left if align is '<', to the right if it is '>' or centered
    if it is '='.
    r    Nc                 :    g | ]}t          |          D ]}|S r   )r0   )r   r   sub_liner-   s      r
   r   zwrap_align.<locals>.<listcomp>G   s0    JJJ$T58I8IJJHXJJJJr   c              3   <   K   | ]}t          |           V  dS ))r-   r8   N)r9   )r   r   r8   r-   s     r
   r   zwrap_align.<locals>.<genexpr>H   sK       I I:>d%9555I I I I I Ir   )r#   r"   mapr   r<   )r$   r-   r8   liness    `` r
   
wrap_alignrG   ?   s     JJtE$)MCC   uEJJJJ%JJJE99 I I I I IBGI I I I I Ir   r*   c                    d | D             }g }t          |  D ]}d |D             }t          t          t          |                    fdt          ||          D             }g }t          | D ]*}|                    |                    |                     +|                    d                    |                     |S )Nc                 l    g | ]1}t          |d                              dd          d                    2S )r   r    r   )r   r#   )r   columns     r
   r   zjoin.<locals>.<listcomp>M   s7    EEE6c&)//$**1-..EEEr   c                 8    g | ]}|                     d           S )r    )r#   )r   rows     r
   r   zjoin.<locals>.<listcomp>P   s"    666#ciioo666r   c                 N    g | ]!\  }}|d |z  gt          |          z
  z  z   "S )r)   r   )r   	row_linesr-   heights      r
   r   zjoin.<locals>.<listcomp>R   sH     
 
 
 	5 u#i..)@AA
 
 
r   r    )zipr"   rE   r   r   r<   )	columns	separatorwidthsjoinedrows
rows_lines
joined_rowrF   rO   s	           @r
   r<   r<   L   s    EEWEEEFFW 
- 
-66666
Sj))**
 
 
 
$'
F$;$;
 
 

 
*% 	5 	5EinnU334444dii
++,,,,Mr   )r&   )Nr3   )r*   )	collectionsr   r   r%   r0   r9   r@   rG   r<   r   r   r
   <module>rY      s    # # # # # #4 4 4:D D D( ( ( (A A A* * *
I 
I 
I 
I     r   