
    cMh3                        d Z ddlmZ ddlmZ ddlmZ ddlZddl	m
Z
 erddlmZ ddlmZ  G d	 d
          ZddZdS )z;
Module for formatting output data in console (to string).
    )annotations)get_terminal_size)TYPE_CHECKINGN)pprint_thing)Iterable)DataFrameFormatterc                      e Zd ZdZddd	ZddZd dZddZedd            Z	ed!d            Z
d"dZed#d            Zd$dZd$dZd%dZd&dZdS )'StringFormatterz3Formatter for string representation of a dataframe.Nfmtr   
line_width
int | NonereturnNonec                R    || _         |j        | _        |j        | _        || _        d S N)r   adjframer   )selfr   r   s      X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/io/formats/string.py__init__zStringFormatter.__init__   s&    7Y
$    strc                f    |                                  }| j        j        r| | j        j         }|S r   )_get_string_representationr   should_show_dimensionsdimensions_info)r   texts     r   	to_stringzStringFormatter.to_string   s:    ..008* 	76DH466Dr   list[list[str]]c                z    | j                                         }| j         j        r|                     |          }|S r   )r   get_strcolsis_truncated_insert_dot_separatorsr   strcolss     r   _get_strcolszStringFormatter._get_strcols"   s:    (&&((8  	;11'::Gr   c                    | j         j        j        r| j        S |                                 }| j         | j        j        dg|R  S | j        r| 	                    |          S | 
                    |          S N   )r   r   empty_empty_info_liner&   r   r   adjoin_need_to_wrap_around_join_multiline_fit_strcols_to_terminal_widthr$   s     r   r   z*StringFormatter._get_string_representation(   s    8> 	)((##%%?""48?1/w////$ 	1''000227;;;r   c                    dt          | j                  j         dt          | j        j                   dt          | j        j                   S )NzEmpty z

Columns: z
Index: )typer   __name__r   columnsindexr   s    r   r+   z StringFormatter._empty_info_line7   sY    7T$*%%. 7 7$TZ%7887 7"4:#3447 7	
r   boolc                X    t          | j        j        d u p| j        j        dk              S )Nr   )r6   r   max_colsr5   s    r   r-   z$StringFormatter._need_to_wrap_around?   s)    DH%-F1BQ1FGGGr   r%   c                    | j                             | j         j                  }t          |          }| j         j        r|                     ||          }| j         j        r|                     ||          }|S r   )r   _get_formatted_indextr_framelenis_truncated_horizontally _insert_dot_separator_horizontalis_truncated_vertically_insert_dot_separator_vertical)r   r%   	str_indexindex_lengths       r   r#   z&StringFormatter._insert_dot_separatorsC   sr    H11$(2CDD	9~~8- 	S;;G\RRG8+ 	Q99'<PPGr   intc                P    | j         j        r| j         j        dz   n| j         j        S r(   )r   r4   
tr_col_numr5   s    r   _adjusted_tr_col_numz$StringFormatter._adjusted_tr_col_numO   s%    *.(.Qtx"Q&&dh>QQr   rB   c                D    |                     | j        dg|z             |S )Nz ...)insertrF   )r   r%   rB   s      r   r>   z0StringFormatter._insert_dot_separator_horizontalS   s'     	t06(\2IJJJr   c                   |t          | j        j                  z
  }| j        j        }t	          |          D ]\  }}| j                             ||                   }| j        j        r|| j        k    }nd}|dk    s|rd}	nd}	|dk    r| j        j        rd}
n	|rd}d}
nd}
| j        	                    |	g||
	          d         }|
                    ||z   |           |S )
NF   z...z..r   left   right)mode)r<   r   r;   
tr_row_num	enumerater   r=   rF   r4   justifyrH   )r   r%   rB   n_header_rowsrow_numixcolcwidth
is_dot_coldotsdot_modedot_strs               r   r@   z.StringFormatter._insert_dot_separator_verticalY   s    %s48+<'='==(% )) 	9 	9GBX\\#g,//Fx1 #4#<<

"
zzZzQww48>w! #""h&&vvH&EEaHGJJw.8888r   strcols_inputIterable[list[str]]c                .     j         }d}t          |          } j        j        rM|                    d          }|t          j         fd|D                                                       |z   z  } fd|D             }|J t          ||          }t          |          }g }	d}
t          |          D ]\  }}||
|         } j        j        r|                    d|           |dk    rkt          |d                   }|t          |          k    r*||dz
  k     r!|                    dgdg|dz
  z  z              n|                    dg|z             |	                      j        j        |g|R             |}
d	                    |	          S )
Nr)   r   c                D    g | ]}j                             |          S  r   r<   .0xr   s     r   
<listcomp>z3StringFormatter._join_multiline.<locals>.<listcomp>~   s%    ===AQ===r   c                    g | ]I}t          |          d k    r2t          j        fd|D                                                       nd JS )r   c                D    g | ]}j                             |          S r_   r`   ra   s     r   rd   z>StringFormatter._join_multiline.<locals>.<listcomp>.<listcomp>   s%    333!dhll1oo333r   )r<   nparraymax)rb   rU   r   s     r   rd   z3StringFormatter._join_multiline.<locals>.<listcomp>   si     
 
 
 ?B#hhllBH3333s3334488:::PQ
 
 
r   z \z   z

)r   listr   r4   poprg   rh   ri   _binifyr<   rP   rH   appendr   r,   join)r   r[   lwidthadjoin_widthr%   idx
col_widthscol_binsnbinsstr_lststartiendrownrowss   `              r   r.   zStringFormatter._join_multilinew   s   }%%8> 	T++a..Cbh=======>>BBDD|SSF
 
 
 

 
 


 !!!:v..H)) 	 	FAs%)$Cx~ #

1c"""qyyCG#g,,&&1uqy==JJw$519)==>>>>JJuu}---NN?48?<>#>>>???EE{{7###r   c                    ddl m  | j        j        dg|R                      d          } |          j                                                                        }t                      \  }}||z
  }|dz   } fd|D                       }t          |          }	d}
|dk    rj|	dk    rd|
dz  }
t          |	dz            }|j
        |         }||         }||dz   z  }|                    |          }t          |          }	|dk    r|	dk    d|	| j        j
        z
  }t          |d          }|| j        _        | j                                         |                                 } | j        j        dg|R  S )Nr   )Seriesr)   
c                x    g | ]6} |          j                                                                         7S r_   )r   r<   ri   )rb   eler~   s     r   rd   zBStringFormatter._fit_strcols_to_terminal_width.<locals>.<listcomp>   s;    JJJ366#;;?..004466JJJr      )pandasr~   r   r,   splitr   r<   ri   r   roundr4   dropr   max_cols_fittedtruncater&   )r   r%   linesmax_lenwidth_difadj_difcol_lensn_colscountermidmid_ixcol_lenr   r~   s                  @r   r/   z.StringFormatter._fit_strcols_to_terminal_width   s   !!!!!!,G,,,22488&--#''))--//$&&qo'6JJJJ'JJJKKXkkfqjjqLG
##C^C(Fv&Gw{"G}}V,,H]]F kkfqjj !48>1oq11#2  	##%%txq+7++++r   r   )r   r   r   r   r   r   )r   r   )r   r   )r   r6   )r%   r   r   r   )r   rC   )r%   r   rB   rC   r   r   )r[   r\   r   r   )r%   r   r   r   )r2   
__module____qualname____doc__r   r   r&   r   propertyr+   r-   r#   rF   r>   r@   r.   r/   r_   r   r   r
   r
      s<       ==% % % % %      < < < < 
 
 
 X
 H H H XH
 
 
 
 R R R XR      < $  $  $  $D!, !, !, !, !, !,r   r
   cols	list[int]r   rC   r   c                4   d}g }d}t          |           dz
  }t          |           D ]M\  }}||z   }||z  }||k    r|dz   |k    o|dk    }	n|dz   |k    o|dk    }	|	r|                    |           |}N|                    t          |                      |S )Nr)   r   r   )r<   rP   ro   )
r   r   rr   bins
curr_widthi_last_columnry   w
w_adjoinedwraps
             r   rn   rn      s    LDJIIMM$ 	$ 	$1%
j 
A>J.81q5DD>J.81q5D 	$KKNNN#JKKD		Kr   )r   r   r   rC   r   r   )r   
__future__r   shutilr   typingr   numpyrg   pandas.io.formats.printingr   collections.abcr   pandas.io.formats.formatr   r
   rn   r_   r   r   <module>r      s     # " " " " " $ $ $ $ $ $                 3 3 3 3 3 3 <((((((;;;;;;g, g, g, g, g, g, g, g,T     r   