
    Mh3                        S r SSKJr  SSKJr  SSKJr  SSKrSSK	J
r
  \(       a  SSKJr  SSKJr   " S	 S
5      rSS jrg)z;
Module for formatting output data in console (to string).
    )annotations)get_terminal_size)TYPE_CHECKINGN)pprint_thing)Iterable)DataFrameFormatterc                      \ rS rSrSrSSS jjrSS jrSS jrSS jr\	SS j5       r
\	SS	 j5       rSS
 jr\	SS j5       r      SS jr      SS jrSS jrSS jrSrg)StringFormatter   z3Formatter for string representation of a dataframe.Nc                `    Xl         UR                  U l        UR                  U l        X l        g N)fmtadjframe
line_width)selfr   r   s      J/var/www/html/env/lib/python3.13/site-packages/pandas/io/formats/string.py__init__StringFormatter.__init__   s"    77YY
$    c                    U R                  5       nU R                  R                  (       a  U U R                  R                   3nU$ r   )_get_string_representationr   should_show_dimensionsdimensions_info)r   texts     r   	to_stringStringFormatter.to_string   s;    ..088**VDHH4456Dr   c                    U R                   R                  5       nU R                   R                  (       a  U R                  U5      nU$ r   )r   get_strcolsis_truncated_insert_dot_separatorsr   strcolss     r   _get_strcolsStringFormatter._get_strcols"   s6    ((&&(88  11':Gr   c                >   U R                   R                  R                  (       a  U R                  $ U R	                  5       nU R
                  c  U R                  R                  " S/UQ76 $ U R                  (       a  U R                  U5      $ U R                  U5      $ N   )r   r   empty_empty_info_liner$   r   r   adjoin_need_to_wrap_around_join_multiline_fit_strcols_to_terminal_widthr"   s     r   r   *StringFormatter._get_string_representation(   sz    88>>(((##%??"88??1/w//$$''00227;;r   c                    S[        U R                  5      R                   S[        U R                  R                  5       S[        U R                  R
                  5       3$ )NzEmpty z

Columns: z
Index: )typer   __name__r   columnsindexr   s    r   r*    StringFormatter._empty_info_line7   sY     T$**%../ 0$TZZ%7%789 :"4::#3#3457	
r   c                    [        U R                  R                  S L =(       d    U R                  R                  S:  5      $ )Nr   )boolr   max_colsr5   s    r   r,   $StringFormatter._need_to_wrap_around?   s0    DHH%%-F1B1BQ1FGGr   c                *   U R                   R                  U R                   R                  5      n[        U5      nU R                   R                  (       a  U R                  X5      nU R                   R                  (       a  U R                  X5      nU$ 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!   &StringFormatter._insert_dot_separatorsC   sh    HH11$((2C2CD	9~88--;;GRG88++99'PGr   c                    U R                   R                  (       a  U R                   R                  S-   $ U R                   R                  $ r'   )r   r4   
tr_col_numr5   s    r   _adjusted_tr_col_num$StringFormatter._adjusted_tr_col_numO   s0    *.((..txx""Q&Qdhh>Q>QQr   c                F    UR                  U R                  S/U-  5        U$ )Nz ...)insertrH   )r   r#   rD   s      r   r@   0StringFormatter._insert_dot_separator_horizontalS   s$     	t006(\2IJr   c                   U[        U R                  R                  5      -
  nU R                  R                  n[	        U5       H  u  pVU R
                  R                  Xd   5      nU R                  R                  (       a  XPR                  :H  nOSnUS:  d  U(       a  Sn	OSn	US:X  a  U R                  R                  (       a  Sn
OU(       a  SnSn
OSn
U R
                  R                  U	/XzS	9S   nUR                  XC-   U5        M     U$ )
NF   z...z..r   left   right)mode)r>   r   r=   
tr_row_num	enumerater   r?   rH   r4   justifyrK   )r   r#   rD   n_header_rowsrow_numixcolcwidth
is_dot_coldotsdot_modedot_strs               r   rB   .StringFormatter._insert_dot_separator_verticalY   s     %s488+<+<'==((%% )GBXX\\#,/Fxx11#<#<<
"
zZQw488>>!""hh&&vv&EaHGJJw.8- *. r   c                2   U R                   nSn[        U5      nU R                  R                  (       ad  UR	                  S5      nU[
        R                  " U Vs/ s H  o`R                  R                  U5      PM     sn5      R                  5       U-   -  nU VVs/ s Ha  n[        U5      S:  aM  [
        R                  " U Vs/ s H  o`R                  R                  U5      PM     sn5      R                  5       OSPMc     nnnUc   e[        X5      n	[        U	5      n
/ nSn[        U	5       H  u  pXLU nU R                  R                  (       a  UR                  SW5        U
S:  aW  [        US   5      nU[        U5      ::  a%  XS-
  :  a  UR                  S/S/US-
  -  -   5        OUR                  S/U-  5        UR                  U R                  R                  " U/UQ76 5        UnM     SR                  U5      $ s  snf s  snf s  snnf )Nr(   r   z \z   z

)r   listr   r4   popnparrayr   r>   max_binifyrT   rK   appendr+   join)r   strcols_inputlwidthadjoin_widthr#   idxxrY   
col_widthscol_binsnbinsstr_lststartiendrownrowss                    r   r-   StringFormatter._join_multilinew   s   }%88>>++a.Cbhh=AQ=>BBD|SSF 
 ?B#hlBHHs3s!hhll1os3488:PQQ 	 

 !!!:.H)FA$Cxx~~

1c"qyCG#g,&1qy=JJw$519)==>JJuu}-NN488??<>#>?E * {{7##3  > 4
s   $H	
)H$H+HHc                V   SSK Jn  U R                  R                  " S/UQ76 R	                  S5      nU" U5      R
                  R                  5       R                  5       n[        5       u  pVXE-
  nUS-   nU" U V	s/ s H0  o" U	5      R
                  R                  5       R                  5       PM2     sn	5      n
[        U
5      nSnUS:  a]  US:  aW  US-  n[        US-  5      nU
R                  U   nX   nXS-   -  nU
R                  U5      n
[        U
5      nUS:  a  US:  a  MW  XR                  R                  -
  n[        US5      nUU R                  l        U R                  R                  5         U R                  5       nU R                  R                  " S/UQ76 $ s  sn	f )Nr   )Seriesr(   
   )pandasr{   r   r+   splitstrr>   rg   r   roundr4   dropr   max_cols_fittedtruncater$   )r   r#   r{   linesmax_lenwidth_difadj_difelecol_lensn_colscountermidmid_ixcol_lenr   s                    r   r.   .StringFormatter._fit_strcols_to_terminal_width   sw   !,G,2248-##'')--/$&o''J'36#;??..0446'JKXkfqjqLG
#C^^C(F&G{"G}}V,H]F kfqj !88>>1oq1#2  	##%xxq+7++/ Ks   <7F&)r   r   r   r   r   )r   r   r   z
int | NonereturnNone)r   r   )r   list[list[str]])r   r8   )r#   r   r   r   )r   int)r#   r   rD   r   r   r   )rk   zIterable[list[str]]r   r   )r#   r   r   r   )r2   
__module____qualname____firstlineno____doc__r   r   r$   r   propertyr*   r,   r!   rH   r@   rB   r-   r.   __static_attributes__ r   r   r
   r
      s    =%< 
 
 H H
 R R&69	&69	< $D!,r   r
   c                .   Sn/ nSn[        U 5      S-
  n[        U 5       HW  u  pgXr-   nXH-  nXV:X  a  US-   U:  =(       a    US:  n	OUS-   U:  =(       a    US:  n	U	(       d  MD  UR                  U5        UnMY     UR                  [        U 5      5        U$ )Nr(   r   r}   )r>   rT   ri   )
colsr   rm   bins
curr_widthi_last_columnru   w
w_adjoinedwraps
             r   rh   rh      s    LDJIMM$%
 
>J.81q5D>J.81q5D4KKN#J   	KKD	Kr   )r   	list[int]r   r   r   r   )r   
__future__r   shutilr   typingr   numpyre   pandas.io.formats.printingr   collections.abcr   pandas.io.formats.formatr   r
   rh   r   r   r   <module>r      s6    # $    3(;g, g,Tr   