§
    tŠtj4  ã                  ó€   — 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      úV/var/www/html/CA-Chatbot/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ØÐ6˜DœHÔ4Ð6Ð6ˆDØˆ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Œ>Ôð 	)ØÔ(Ð(à×#Ò#Ñ%Ô%ˆàŒ?Ð"à"�4”8”? 1Ð/ wÐ/Ð/Ð/Ð/àÔ$ð 	1Ø×'Ò'¨Ñ0Ô0Ð0à×2Ò2°7Ñ;Ô;Ð;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_line8   sY   € ð7•T˜$œ*Ñ%Ô%Ô.ð 7ð 7Ý$ T¤ZÔ%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)   € å�D”HÔ%¨Ð-ÐF°´Ô1BÀQÒ1FÑ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_separatorsD   sr   € Ø”H×1Ò1°$´(Ô2CÑDÔDˆ	Ý˜9‘~”~ˆàŒ8Ô-ð 	SØ×;Ò;¸GÀ\ÑRÔRˆGàŒ8Ô+ð 	QØ×9Ò9¸'À<ÑPÔPˆGàˆ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_numP   s%   € à*.¬(¬.ÐQˆtŒxÔ" QÑ&Ð&¸d¼hÔ>QÐQr   rB   c                óD   — |                      | j        dg|z  ¦  «         |S )Nz ...)ÚinsertrF   )r   r%   rB   s      r   r>   z0StringFormatter._insert_dot_separator_horizontalT   s'   € ð 	�Š�tÔ0°6°(¸\Ñ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_verticalZ   s  € ð %¥s¨4¬8Ô+<Ñ'=Ô'=Ñ=ˆØ”(Ô%ˆÝ  Ñ)Ô)ð 	9ð 	9‰GˆB�Ø”X—\’\ # g¤,Ñ/Ô/ˆFàŒxÔ1ð #Ø 4Ô#<Ò<�
�
à"�
à˜Šzˆz˜ZˆzØ��à�à�QŠwˆw˜4œ8œ>ˆwØ!��Øð #Ø�Ø"��à"�à”h×&Ò&¨ v¨v¸HÐ&ÑEÔEÀaÔHˆGØ�JŠJ�w Ñ.°Ñ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¨!�d”h—l’l 1‘o”oÐ3Ð3Ð3r   )r<   ÚnpÚarrayÚmax)rb   rU   r   s     €r   rd   z3StringFormatter._join_multiline.<locals>.<listcomp>�   si   ø€ ð 
ð 
ð 
àõ ?BÀ#¹h¼hÈºl¸l�BŒHÐ3Ð3Ð3Ð3¨sÐ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_multilinex   sÊ  ø€ Ø”ˆØˆÝ�}Ñ%Ô%ˆàŒ8Œ>ð 	TØ—+’+˜a‘.”.ˆCØ•b”hÐ=Ð=Ð=Ð=¸Ð=Ñ=Ô=Ñ>Ô>×BÒBÑDÔDÀ|ÑSÑSˆFð
ð 
ð 
ð 
àð
ñ 
ô 
ˆ
ð
 Ð!Ð!Ð!Ý˜: vÑ.Ô.ˆÝ�H‘”ˆàˆØˆÝ Ñ)Ô)ð 	ð 	‰FˆAˆsØ˜% ˜)Ô$ˆCØŒxŒ~ð #Ø—
’
˜1˜cÑ"Ô"Ð"Ø�qŠyˆyÝ˜C œG™œ�Ø�#˜g™,œ,Ò&Ð&¨1¨u°q©yª=¨=Ø—J’J ˜w¨$¨°5¸1±9Ñ)=Ñ=Ñ>Ô>Ð>Ð>à—J’J ˜u u™}Ñ-Ô-Ð-Ø�NŠN˜?˜4œ8œ?¨<Ð>¸#Ð>Ð>Ð>Ñ?Ô?Ð?ØˆEˆEØ�{Š{˜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ÐJ¸3˜6˜6 #™;œ;œ?×.Ò.Ñ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Ò2°4Ñ8Ô8ˆØ�&˜‘-”-Ô#×'Ò'Ñ)Ô)×-Ò-Ñ/Ô/ˆå$Ñ&Ô&‰ˆˆqØ˜‰oˆà˜‘'ˆØ�6ÐJÐJÐJÐJÀ'ÐJÑJÔJÑKÔKˆÝ�X‘”ˆØˆØ˜Škˆk˜f qšj˜jØ�q‰LˆGÝ˜ ™
Ñ#Ô#ˆCØ”^ CÔ(ˆFØ˜vÔ&ˆGà�w ‘{Ñ"ˆGØ—}’} VÑ,Ô,ˆHÝ˜‘]”]ˆFð ˜Škˆk˜f qšj˜jð ! 4¤8¤>Ñ1ˆå˜o¨qÑ1Ô1ˆØ#2ˆŒÔ ð 	Œ×ÒÑÔÐØ×#Ò#Ñ%Ô%ˆØˆtŒxŒ˜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Ý˜‘I”I ‘M€MÝ˜$‘”ð 	$ð 	$‰ˆˆ1Ø˜Ñ%ˆ
Ø�jÑ ˆ
Ø˜AÒÐØ ‘> JÒ.Ð8°1°q²5ˆDˆDà ‘> JÒ.Ð8°1°q²5ˆDØð 	$Ø�KŠK˜‰NŒNˆNØ#ˆJøà‡K‚K•�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   