Ë
    u™ãj·_  ã                  ó  — d dl mZ d dlmZmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ e	r$d d	lmZmZmZmZ d d
lmZmZ d dlmZmZmZ d dlmZ d,d„Z 	 d-	 	 	 d.d„Z! G d„ de«      Z" G d„ de"«      Z# G d„ de"«      Z$ G d„ d«      Z% G d„ de%«      Z& G d„ de%«      Z' G d„ de«      Z( G d„ de(«      Z) G d„ d e)«      Z* G d!„ d"e(«      Z+ G d#„ d$e)e+«      Z, G d%„ d&e(«      Z- G d'„ d(e-«      Z. G d)„ d*e-e+«      Z/d/d+„Z0y)0é    )Úannotations)ÚABCÚabstractmethod)Úcached_propertyN)ÚTYPE_CHECKING)Ú_global_config)Úformat)Úget_adjustmentÚpprint_thing)ÚIterableÚIteratorÚMappingÚSequence)ÚDtypeÚWriteBuffer)Ú	DataFrameÚIndexÚSeries)Úprintingc                óL   — dD ]  }| dk  r| d›|› d|› �c S | dz  } Œ | d›|› d�S )a{  
    Return size in human readable format.

    Parameters
    ----------
    num : int
        Size in bytes.
    size_qualifier : str
        Either empty, or '+' (if lower bound).

    Returns
    -------
    str
        Size in human readable format.

    Examples
    --------
    >>> _sizeof_fmt(23028, "")
    '22.5 KB'

    >>> _sizeof_fmt(23028, "+")
    '22.5+ KB'
    )ÚbytesÚKBÚMBÚGBÚTBg      �@z3.1fú z PB© )ÚnumÚsize_qualifierÚxs      úa/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/io/formats/info.pyÚ_sizeof_fmtr"   )   sQ   € ð0 /ò ˆØ�Š<Ø˜$�Z Ð/¨q°°Ð4Ò4Øˆv‰‰ðð �$ˆZ˜Ð' sÐ+Ð+ó    c                ó"   — | €t         d   d   } | S )z5Get memory usage based on inputs and display options.ÚdisplayÚmemory_usage©Úconfig)r&   s    r!   Ú_initialize_memory_usager)   H   s   € ð ÐÜ˜iÑ(¨Ñ8ˆØÐr#   c                  óà   — e Zd ZU dZded<   ded<   eedd„«       «       Zeedd„«       «       Zeedd„«       «       Z	eedd	„«       «       Z
edd
„«       Zedd„«       Ze	 	 	 	 	 	 	 	 	 	 dd„«       Zy)Ú	_BaseInfoaj  
    Base class for DataFrameInfo and SeriesInfo.

    Parameters
    ----------
    data : DataFrame or Series
        Either dataframe or series.
    memory_usage : bool or str, optional
        If "deep", introspect the data deeply by interrogating object dtypes
        for system-level memory consumption, and include it in the returned
        values.
    úDataFrame | SeriesÚdataú
bool | strr&   c                 ó   — y)z¡
        Dtypes.

        Returns
        -------
        dtypes : sequence
            Dtype of each of the DataFrame's columns (or one series column).
        Nr   ©Úselfs    r!   Údtypesz_BaseInfo.dtypesb   ó   � r#   c                 ó   — y)ú!Mapping dtype - number of counts.Nr   r0   s    r!   Údtype_countsz_BaseInfo.dtype_countsn   r3   r#   c                 ó   — y)úBSequence of non-null counts for all columns or column (if series).Nr   r0   s    r!   Únon_null_countsz_BaseInfo.non_null_countss   r3   r#   c                 ó   — y)zœ
        Memory usage in bytes.

        Returns
        -------
        memory_usage_bytes : int
            Object's total memory usage in bytes.
        Nr   r0   s    r!   Úmemory_usage_bytesz_BaseInfo.memory_usage_bytesx   r3   r#   c                óH   — t        | j                  | j                  «      › d�S )z0Memory usage in a form of human readable string.ú
)r"   r;   r   r0   s    r!   Úmemory_usage_stringz_BaseInfo.memory_usage_string„   s%   € ô ˜d×5Ñ5°t×7JÑ7JÓKÐLÈBÐOÐOr#   c                ó    — d}| j                   r?| j                   dk7  r0d| j                  v s | j                  j                  j                  rd}|S )NÚ ÚdeepÚobjectú+)r&   r6   r-   ÚindexÚ_is_memory_usage_qualified)r1   r   s     r!   r   z_BaseInfo.size_qualifier‰   sJ   € àˆØ×ÒØ× Ñ  FÒ*ð
  × 1Ñ 1Ñ1Ø—y‘y—‘×AÒAà%(�NØÐr#   c                ó   — y ©Nr   )r1   ÚbufÚmax_colsÚverboseÚshow_countss        r!   Úrenderz_BaseInfo.render˜   s   € ð 	r#   N©ÚreturnzIterable[Dtype]©rN   úMapping[str, int]©rN   zlist[int] | Series©rN   Úint©rN   Ústr©
rH   úWriteBuffer[str] | NonerI   ú
int | NonerJ   úbool | NonerK   rY   rN   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__Úpropertyr   r2   r6   r9   r;   r>   r   rL   r   r#   r!   r+   r+   Q   sõ   … ñð ÓØÓàØòó ó ðð Øò0ó ó ð0ð ØòQó ó ðQð Øòó ó ðð òPó ðPð òó ðð ðð %ðð ð	ð
 ðð !ðð 
òó ñr#   r+   c                  ó®   — e Zd ZdZ	 d	 	 	 	 	 dd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
edd	„«       Z	 	 	 	 	 	 	 	 	 	 dd
„Zy)ÚDataFrameInfoz0
    Class storing dataframe-specific info.
    Nc                ó2   — || _         t        |«      | _        y rG   ©r-   r)   r&   ©r1   r-   r&   s      r!   Ú__init__zDataFrameInfo.__init__©   s   € ð
  $ˆŒ	Ü4°\ÓBˆÕr#   c                ó,   — t        | j                  «      S rG   )Ú_get_dataframe_dtype_countsr-   r0   s    r!   r6   zDataFrameInfo.dtype_counts±   s   € ä*¨4¯9©9Ó5Ð5r#   c                ó.   — | j                   j                  S )z
        Dtypes.

        Returns
        -------
        dtypes
            Dtype of each of the DataFrame's columns.
        ©r-   r2   r0   s    r!   r2   zDataFrameInfo.dtypesµ   s   € ð �y‰y×ÑÐr#   c                ó.   — | j                   j                  S )zz
        Column names.

        Returns
        -------
        ids : Index
            DataFrame's column names.
        )r-   Úcolumnsr0   s    r!   ÚidszDataFrameInfo.idsÁ   s   € ð �y‰y× Ñ Ð r#   c                ó,   — t        | j                  «      S ©z#Number of columns to be summarized.)Úlenrm   r0   s    r!   Ú	col_countzDataFrameInfo.col_countÍ   s   € ô �4—8‘8‹}Ðr#   c                ó6   — | j                   j                  «       S )r8   ©r-   Úcountr0   s    r!   r9   zDataFrameInfo.non_null_countsÒ   s   € ð �y‰y�‰Ó Ð r#   c                óv   — | j                   dk(  }| j                  j                  d|¬«      j                  «       S )NrA   T©rD   rA   )r&   r-   Úsum©r1   rA   s     r!   r;   z DataFrameInfo.memory_usage_bytes×   s5   € à× Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ó<×@Ñ@ÓBÐBr#   c               óD   — t        | |||¬«      }|j                  |«       y )N)ÚinforI   rJ   rK   )Ú_DataFrameInfoPrinterÚ	to_buffer©r1   rH   rI   rJ   rK   Úprinters         r!   rL   zDataFrameInfo.renderÜ   s*   € ô (ØØØØ#ô	
ˆð 	×Ñ˜#Õr#   rG   )r-   r   r&   úbool | str | NonerN   rZ   rO   rM   ©rN   r   rR   ©rN   r   rV   )r[   r\   r]   r^   rf   r`   r6   r2   rm   rq   r9   r;   rL   r   r#   r!   rb   rb   ¤   sâ   „ ñð +/ðCàðCð (ðCð 
ó	Cð ò6ó ð6ð ò	 ó ð	 ð ò	!ó ð	!ð òó ðð ò!ó ð!ð òCó ðCðð %ðð ð	ð
 ðð !ðð 
ôr#   rb   c                  ó”   — e Zd ZdZ	 d
	 	 	 	 	 dd„Zdddddœ	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zedd„«       Z	edd	„«       Z
y)Ú
SeriesInfoz-
    Class storing series-specific info.
    Nc                ó2   — || _         t        |«      | _        y rG   rd   re   s      r!   rf   zSeriesInfo.__init__ò   s   € ð
 !ˆŒ	Ü4°\ÓBˆÕr#   )rH   rI   rJ   rK   c               ó\   — |�t        d«      ‚t        | ||¬«      }|j                  |«       y )NzIArgument `max_cols` can only be passed in DataFrame.info, not Series.info)rz   rJ   rK   )Ú
ValueErrorÚ_SeriesInfoPrinterr|   r}   s         r!   rL   zSeriesInfo.renderú   sA   € ð ÐÜð5óð ô %ØØØ#ô
ˆð
 	×Ñ˜#Õr#   c                ó8   — | j                   j                  «       gS rG   rs   r0   s    r!   r9   zSeriesInfo.non_null_counts  s   € à—	‘	—‘Ó!Ð"Ð"r#   c                ó0   — | j                   j                  gS rG   rj   r0   s    r!   r2   zSeriesInfo.dtypes  s   € à—	‘	× Ñ Ð!Ð!r#   c                óD   — ddl m} t         || j                  «      «      S )Nr   )r   )Úpandas.core.framer   rh   r-   )r1   r   s     r!   r6   zSeriesInfo.dtype_counts  s   € å/ä*©9°T·Y±YÓ+?Ó@Ð@r#   c                óZ   — | j                   dk(  }| j                  j                  d|¬«      S )z“Memory usage in bytes.

        Returns
        -------
        memory_usage_bytes : int
            Object's total memory usage in bytes.
        rA   Trv   )r&   r-   rx   s     r!   r;   zSeriesInfo.memory_usage_bytes  s.   € ð × Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ó<Ð<r#   rG   )r-   r   r&   r   rN   rZ   rV   )rN   z	list[int]rM   rO   rR   )r[   r\   r]   r^   rf   rL   r`   r9   r2   r6   r;   r   r#   r!   rƒ   rƒ   í   sÈ   „ ñð +/ðCàðCð (ðCð 
ó	Cð (,Ø#Ø#Ø#'ñð %ðð ð	ð
 ðð !ðð 
óð( ò#ó ð#ð ò"ó ð"ð òAó ðAð
 ò	=ó ñ	=r#   rƒ   c                  ó,   — e Zd ZdZddd„Zedd„«       Zy)Ú_InfoPrinterAbstractz6
    Class for printing dataframe or series info.
    Nc                ó”   — | j                  «       }|j                  «       }|€t        j                  }t	        j
                  ||«       y)z Save dataframe info into buffer.N)Ú_create_table_builderÚ	get_linesÚsysÚstdoutÚfmtÚbuffer_put_lines)r1   rH   Útable_builderÚliness       r!   r|   z_InfoPrinterAbstract.to_buffer.  s<   € à×2Ñ2Ó4ˆØ×'Ñ'Ó)ˆØˆ;Ü—*‘*ˆCÜ×Ñ˜S %Õ(r#   c                 ó   — y)z!Create instance of table builder.Nr   r0   s    r!   r�   z*_InfoPrinterAbstract._create_table_builder6  r3   r#   rG   )rH   rW   rN   rZ   )rN   Ú_TableBuilderAbstract)r[   r\   r]   r^   r|   r   r�   r   r#   r!   rŽ   rŽ   )  s    „ ñô)ð ò0ó ñ0r#   rŽ   c                  ó’   — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	dd„Z
dd	„Zdd
„Zy)r{   a{  
    Class for printing dataframe info.

    Parameters
    ----------
    info : DataFrameInfo
        Instance of DataFrameInfo.
    max_cols : int, optional
        When to switch from the verbose to the truncated output.
    verbose : bool, optional
        Whether to print the full summary.
    show_counts : bool, optional
        Whether to show the non-null counts.
    Nc                óš   — || _         |j                  | _        || _        | j                  |«      | _        | j                  |«      | _        y rG   )rz   r-   rJ   Ú_initialize_max_colsrI   Ú_initialize_show_countsrK   )r1   rz   rI   rJ   rK   s        r!   rf   z_DataFrameInfoPrinter.__init__K  sB   € ð ˆŒ	Ø—I‘IˆŒ	ØˆŒØ×1Ñ1°(Ó;ˆŒØ×7Ñ7¸ÓDˆÕr#   c                ó   — t         d   d   S )z"Maximum info rows to be displayed.r%   Úmax_info_rowsr'   r0   s    r!   Úmax_rowsz_DataFrameInfoPrinter.max_rowsX  s   € ô �iÑ  Ñ1Ð1r#   c                óF   — t        | j                  | j                  kD  «      S )zDCheck if number of columns to be summarized does not exceed maximum.)Úboolrq   rI   r0   s    r!   Úexceeds_info_colsz'_DataFrameInfoPrinter.exceeds_info_cols]  s   € ô �D—N‘N T§]¡]Ñ2Ó3Ð3r#   c                óX   — t        t        | j                  «      | j                  kD  «      S )zACheck if number of rows to be summarized does not exceed maximum.)r¢   rp   r-   r    r0   s    r!   Úexceeds_info_rowsz'_DataFrameInfoPrinter.exceeds_info_rowsb  s    € ô ”C˜Ÿ	™	“N T§]¡]Ñ2Ó3Ð3r#   c                ó.   — | j                   j                  S ro   ©rz   rq   r0   s    r!   rq   z_DataFrameInfoPrinter.col_countg  ó   € ð �y‰y×"Ñ"Ð"r#   c                ó"   — |€t         d   d   S |S )Nr%   Úmax_info_columnsr'   )r1   rI   s     r!   rœ   z*_DataFrameInfoPrinter._initialize_max_colsl  s   € ØÐÜ˜)Ñ$Ð%7Ñ8Ð8Øˆr#   c                óT   — |€%t        | j                   xr | j                   «      S |S rG   )r¢   r£   r¥   ©r1   rK   s     r!   r�   z-_DataFrameInfoPrinter._initialize_show_countsq  s0   € ØÐÜ˜D×2Ñ2Ð2ÒQ¸4×;QÑ;QÐ7QÓRÐRàÐr#   c                ó*  — | j                   r!t        | j                  | j                  ¬«      S | j                   du rt	        | j                  ¬«      S | j
                  rt	        | j                  ¬«      S t        | j                  | j                  ¬«      S )z[
        Create instance of table builder based on verbosity and display settings.
        ©rz   Úwith_countsF©rz   )rJ   Ú_DataFrameTableBuilderVerboserz   rK   Ú _DataFrameTableBuilderNonVerboser£   r0   s    r!   r�   z+_DataFrameInfoPrinter._create_table_builderw  sz   € ð �<Š<Ü0Ø—Y‘YØ ×,Ñ,ôð ð �\‰\˜UÑ"Ü3¸¿¹ÔCÐCØ×#Ò#Ü3¸¿¹ÔCÐCä0Ø—Y‘YØ ×,Ñ,ôð r#   )NNN)
rz   rb   rI   rX   rJ   rY   rK   rY   rN   rZ   rR   ©rN   r¢   )rI   rX   rN   rS   ©rK   rY   rN   r¢   )rN   Ú_DataFrameTableBuilder)r[   r\   r]   r^   rf   r`   r    r£   r¥   rq   rœ   r�   r�   r   r#   r!   r{   r{   ;  s¬   „ ñð$  $Ø#Ø#'ðEàðEð ðEð ð	Eð
 !ðEð 
óEð ò2ó ð2ð ò4ó ð4ð ò4ó ð4ð ò#ó ð#óó
ôr#   r{   c                  ó<   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 dd„Zdd„Zd	d„Zy)
r‡   a  Class for printing series info.

    Parameters
    ----------
    info : SeriesInfo
        Instance of SeriesInfo.
    verbose : bool, optional
        Whether to print the full summary.
    show_counts : bool, optional
        Whether to show the non-null counts.
    Nc                ón   — || _         |j                  | _        || _        | j                  |«      | _        y rG   )rz   r-   rJ   r�   rK   )r1   rz   rJ   rK   s       r!   rf   z_SeriesInfoPrinter.__init__˜  s0   € ð ˆŒ	Ø—I‘IˆŒ	ØˆŒØ×7Ñ7¸ÓDˆÕr#   c                ó    — | j                   s| j                   €!t        | j                  | j                  ¬«      S t	        | j                  ¬«      S )zF
        Create instance of table builder based on verbosity.
        r®   r°   )rJ   Ú_SeriesTableBuilderVerboserz   rK   Ú_SeriesTableBuilderNonVerboser0   s    r!   r�   z(_SeriesInfoPrinter._create_table_builder£  sB   € ð �<Š<˜4Ÿ<™<Ð/Ü-Ø—Y‘YØ ×,Ñ,ôð ô
 1°d·i±iÔ@Ð@r#   c                ó   — |€y|S )NTr   r¬   s     r!   r�   z*_SeriesInfoPrinter._initialize_show_counts¯  s   € ØÐØàÐr#   )NN)rz   rƒ   rJ   rY   rK   rY   rN   rZ   )rN   Ú_SeriesTableBuilderr´   )r[   r\   r]   r^   rf   r�   r�   r   r#   r!   r‡   r‡   ‹  sJ   „ ñ
ð  $Ø#'ð		Eàð	Eð ð	Eð !ð		Eð
 
ó	Eó
Aôr#   r‡   c                  ó¼   — e Zd ZU dZded<   ded<   edd„«       Zedd„«       Zedd„«       Z	edd	„«       Z
edd
„«       Zedd„«       Zedd„«       Zdd„Zdd„Zdd„Zy)r™   z*
    Abstract builder for info table.
    ú	list[str]Ú_linesr+   rz   c                 ó   — y)z-Product in a form of list of lines (strings).Nr   r0   s    r!   r‘   z_TableBuilderAbstract.get_lines¾  r3   r#   c                ó.   — | j                   j                  S rG   ©rz   r-   r0   s    r!   r-   z_TableBuilderAbstract.dataÂ  s   € à�y‰y�~‰~Ðr#   c                ó.   — | j                   j                  S )z*Dtypes of each of the DataFrame's columns.)rz   r2   r0   s    r!   r2   z_TableBuilderAbstract.dtypesÆ  s   € ð �y‰y×ÑÐr#   c                ó.   — | j                   j                  S )r5   )rz   r6   r0   s    r!   r6   z"_TableBuilderAbstract.dtype_countsË  s   € ð �y‰y×%Ñ%Ð%r#   c                ó@   — t        | j                  j                  «      S )z Whether to display memory usage.)r¢   rz   r&   r0   s    r!   Údisplay_memory_usagez*_TableBuilderAbstract.display_memory_usageÐ  s   € ô �D—I‘I×*Ñ*Ó+Ð+r#   c                ó.   — | j                   j                  S )z/Memory usage string with proper size qualifier.)rz   r>   r0   s    r!   r>   z)_TableBuilderAbstract.memory_usage_stringÕ  s   € ð �y‰y×,Ñ,Ð,r#   c                ó.   — | j                   j                  S rG   )rz   r9   r0   s    r!   r9   z%_TableBuilderAbstract.non_null_countsÚ  s   € à�y‰y×(Ñ(Ð(r#   c                ór   — | j                   j                  t        t        | j                  «      «      «       y)z>Add line with string representation of dataframe to the table.N)r¿   ÚappendrU   Útyper-   r0   s    r!   Úadd_object_type_linez*_TableBuilderAbstract.add_object_type_lineÞ  s!   € à�‰×Ñœ3œt D§I¡I›Ó/Õ0r#   c                ó~   — | j                   j                  | j                  j                  j	                  «       «       y)z,Add line with range of indices to the table.N)r¿   rÊ   r-   rD   Ú_summaryr0   s    r!   Úadd_index_range_linez*_TableBuilderAbstract.add_index_range_lineâ  s%   € à�‰×Ñ˜4Ÿ9™9Ÿ?™?×3Ñ3Ó5Õ6r#   c                óâ   — t        | j                  j                  «       «      D ��cg c]  \  }}|› d|d›d�‘Œ }}}| j                  j	                  ddj                  |«      › �«       yc c}}w )z2Add summary line with dtypes present in dataframe.ú(Údú)zdtypes: z, N)Úsortedr6   Úitemsr¿   rÊ   Újoin)r1   ÚkeyÚvalÚcollected_dtypess       r!   Úadd_dtypes_linez%_TableBuilderAbstract.add_dtypes_lineæ  sq   € ô /5°T×5FÑ5F×5LÑ5LÓ5NÓ.O÷
Ù"* # sˆsˆe�1�S˜�G˜1Òð
Ðñ 
ð 	�‰×Ñ˜X d§i¡iÐ0@Ó&AÐ%BÐCÕDùó
s   §A+N©rN   r¾   )rN   r,   rM   rO   r³   rT   rQ   ©rN   rZ   )r[   r\   r]   r^   r_   r   r‘   r`   r-   r2   r6   rÆ   r>   r9   rÌ   rÏ   rÚ   r   r#   r!   r™   r™   ¶  s®   … ñð ÓØ
ƒOàò<ó ð<ð òó ðð ò ó ð ð ò&ó ð&ð ò,ó ð,ð ò-ó ð-ð ò)ó ð)ó1ó7ôEr#   r™   c                  óx   — e Zd ZdZdd„Zdd„Zdd„Zedd„«       Ze	dd„«       Z
e	dd„«       Ze	dd„«       Zdd	„Zy
)rµ   z�
    Abstract builder for dataframe info table.

    Parameters
    ----------
    info : DataFrameInfo.
        Instance of DataFrameInfo.
    c               ó   — || _         y rG   r°   ©r1   rz   s     r!   rf   z_DataFrameTableBuilder.__init__ø  s	   € Ø#'ˆ�	r#   c                óž   — g | _         | j                  dk(  r| j                  «        | j                   S | j                  «        | j                   S )Nr   )r¿   rq   Ú_fill_empty_infoÚ_fill_non_empty_infor0   s    r!   r‘   z _DataFrameTableBuilder.get_linesû  sE   € ØˆŒØ�>‰>˜QÒØ×!Ñ!Ô#ð �{‰{Ðð ×%Ñ%Ô'Ø�{‰{Ðr#   c                ó¼   — | j                  «        | j                  «        | j                  j                  dt	        | j
                  «      j                  › d�«       y)z;Add lines to the info table, pertaining to empty dataframe.zEmpty r=   N)rÌ   rÏ   r¿   rÊ   rË   r-   r[   r0   s    r!   rá   z'_DataFrameTableBuilder._fill_empty_info  sD   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø�‰×Ñ˜V¤D¨¯©£O×$<Ñ$<Ð#=¸RÐ@ÕAr#   c                 ó   — y©z?Add lines to the info table, pertaining to non-empty dataframe.Nr   r0   s    r!   râ   z+_DataFrameTableBuilder._fill_non_empty_info	  r3   r#   c                ó.   — | j                   j                  S )z
DataFrame.rÂ   r0   s    r!   r-   z_DataFrameTableBuilder.data  ó   € ð �y‰y�~‰~Ðr#   c                ó.   — | j                   j                  S )zDataframe columns.)rz   rm   r0   s    r!   rm   z_DataFrameTableBuilder.ids  s   € ð �y‰y�}‰}Ðr#   c                ó.   — | j                   j                  S )z-Number of dataframe columns to be summarized.r§   r0   s    r!   rq   z _DataFrameTableBuilder.col_count  r¨   r#   c                óT   — | j                   j                  d| j                  › �«       y©z!Add line containing memory usage.zmemory usage: N©r¿   rÊ   r>   r0   s    r!   Úadd_memory_usage_linez,_DataFrameTableBuilder.add_memory_usage_line  ó"   € à�‰×Ñ˜^¨D×,DÑ,DÐ+EÐFÕGr#   N)rz   rb   rN   rZ   rÛ   rÜ   )rN   r   r€   rR   )r[   r\   r]   r^   rf   r‘   rá   r   râ   r`   r-   rm   rq   rí   r   r#   r!   rµ   rµ   î  so   „ ñó(óóBð òNó ðNð òó ðð òó ðð ò#ó ð#ôHr#   rµ   c                  ó    — e Zd ZdZdd„Zdd„Zy)r²   z>
    Dataframe info table builder for non-verbose output.
    c                ó¾   — | j                  «        | j                  «        | j                  «        | j                  «        | j                  r| j                  «        yyrå   )rÌ   rÏ   Úadd_columns_summary_linerÚ   rÆ   rí   r0   s    r!   râ   z5_DataFrameTableBuilderNonVerbose._fill_non_empty_info&  sL   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×$Ò$Ø×&Ñ&Õ(ð %r#   c                ón   — | j                   j                  | j                  j                  d¬«      «       y )NÚColumns©Úname)r¿   rÊ   rm   rÎ   r0   s    r!   rñ   z9_DataFrameTableBuilderNonVerbose.add_columns_summary_line/  s&   € Ø�‰×Ñ˜4Ÿ8™8×,Ñ,°)Ð,Ó<Õ=r#   NrÜ   )r[   r\   r]   r^   râ   rñ   r   r#   r!   r²   r²   !  s   „ ñó)ô>r#   r²   c                  óê   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   edd„«       Zdd„Ze	e
dd„«       «       Ze	dd„«       Zdd„Zdd„Zdd„Ze
dd„«       Ze
dd„«       Zdd„Zdd„Zdd„Zd d„Zd d„Zy)!Ú_TableBuilderVerboseMixinz(
    Mixin for verbose info output.
    z  rU   ÚSPACINGzSequence[Sequence[str]]ÚstrrowsúSequence[int]Úgross_column_widthsr¢   r¯   c                ó   — t        «       S rG   )r
   r0   s    r!   Ú_adjz_TableBuilderVerboseMixin._adj=  s   € ô ÓÐr#   c                óF   — | j                   j                  |g|d¬«      d   S )NÚleft)Úmoder   )rý   Újustify)r1   ÚtextÚwidths      r!   Ú_ljustz _TableBuilderVerboseMixin._ljustB  s%   € Ø�y‰y× Ñ  $ ¨°VÐ Ó<¸QÑ?Ð?r#   c                 ó   — y)ú.Headers names of the columns in verbose table.Nr   r0   s    r!   Úheadersz!_TableBuilderVerboseMixin.headersE  r3   r#   c                ór   — | j                   D �cg c]  }| j                  j                  |«      ‘Œ c}S c c}w )z'Widths of header columns (only titles).)r  rý   rp   ©r1   Úcols     r!   Úheader_column_widthsz._TableBuilderVerboseMixin.header_column_widthsJ  s)   € ð /3¯l©lÖ; s�—	‘	—‘˜cÕ"Ò;Ð;ùÒ;s   �"4c                ó„   — | j                  «       }t        | j                  |d¬«      D �cg c]
  }t        |Ž ‘Œ c}S c c}w )zAGet widths of columns containing both headers and actual content.F©Ústrict)Ú_get_body_column_widthsÚzipr  Úmax)r1   Úbody_column_widthsÚwidthss      r!   Ú_get_gross_column_widthsz2_TableBuilderVerboseMixin._get_gross_column_widthsO  sJ   € à!×9Ñ9Ó;Ðô Ø×)Ñ)Ð+=Àeôö
àô �ŠLò
ð 	
ùò 
s   «=c                óŽ   ‡ — t        t        ‰ j                  ddiŽ«      }|D �cg c]  }t        ˆ fd„|D «       «      ‘Œ c}S c c}w )z$Get widths of table content columns.r  Tc              3  óT   •K  — | ]  }‰j                   j                  |«      –— Œ! y ­wrG   )rý   rp   )Ú.0r    r1   s     €r!   ú	<genexpr>zD_TableBuilderVerboseMixin._get_body_column_widths.<locals>.<genexpr>\  s   øè ø€ Ò2¨�D—I‘I—M‘M !×$Ñ2ùs   ƒ%()Úlistr  rù   r  )r1   Ústrcolsr
  s   `  r!   r  z1_TableBuilderVerboseMixin._get_body_column_widthsY  s:   ø€ ä+/´°T·\±\Ð0OÈ$Ñ0OÓ+PˆØ>EÖF°s”Ó2¨cÔ2Õ2ÒFÐFùÒFs   ¤Ac                óZ   — | j                   r| j                  «       S | j                  «       S )z„
        Generator function yielding rows content.

        Each element represents a row comprising a sequence of strings.
        )r¯   Ú_gen_rows_with_countsÚ_gen_rows_without_countsr0   s    r!   Ú	_gen_rowsz#_TableBuilderVerboseMixin._gen_rows^  s+   € ð ×ÒØ×-Ñ-Ó/Ð/à×0Ñ0Ó2Ð2r#   c                 ó   — y)ú=Iterator with string representation of body data with counts.Nr   r0   s    r!   r  z/_TableBuilderVerboseMixin._gen_rows_with_countsi  r3   r#   c                 ó   — y)ú@Iterator with string representation of body data without counts.Nr   r0   s    r!   r  z2_TableBuilderVerboseMixin._gen_rows_without_countsm  r3   r#   c           
     ó  — | j                   j                  t        | j                  | j                  d¬«      D ��cg c]  \  }}| j                  ||«      ‘Œ c}}«      }| j                  j                  |«       y c c}}w ©NTr  )rø   rÖ   r  r  rû   r  r¿   rÊ   )r1   ÚheaderÚ	col_widthÚheader_lines       r!   Úadd_header_linez)_TableBuilderVerboseMixin.add_header_lineq  sl   € Ø—l‘l×'Ñ'ô *-Ø—L‘L $×":Ñ":À4ô*÷á%�F˜Ið —‘˜F IÕ.óó
ˆð 	�‰×Ñ˜;Õ'ùós   »A;
c           
     ó  — | j                   j                  t        | j                  | j                  d¬«      D ��cg c]  \  }}| j                  d|z  |«      ‘Œ c}}«      }| j                  j                  |«       y c c}}w )NTr  ú-)rø   rÖ   r  r  rû   r  r¿   rÊ   )r1   Úheader_colwidthÚgross_colwidthÚseparator_lines       r!   Úadd_separator_linez,_TableBuilderVerboseMixin.add_separator_line|  st   € ØŸ™×*Ñ*ô 8;Ø×-Ñ-¨t×/GÑ/GÐPTô8÷á3�O ^ð —‘˜C /Ñ1°>ÕBóó
ˆð 	�‰×Ñ˜>Õ*ùós   »A>
c                ó  — | j                   D ]q  }| j                  j                  t        || j                  d¬«      D ��cg c]  \  }}| j                  ||«      ‘Œ c}}«      }| j                  j                  |«       Œs y c c}}w r$  )rù   rø   rÖ   r  rû   r  r¿   rÊ   )r1   Úrowr
  r,  Ú	body_lines        r!   Úadd_body_linesz(_TableBuilderVerboseMixin.add_body_lines‡  s{   € Ø—<‘<ò 		*ˆCØŸ™×)Ñ)ô 03Ø˜T×5Ñ5¸dô0÷á+˜˜^ð —K‘K  ^Õ4óóˆIð �K‰K×Ñ˜yÕ)ñ		*ùós   Á Bc              #  ó<   K  — | j                   D ]	  }|› d�–— Œ y­w)z7Iterator with string representation of non-null counts.z	 non-nullN)r9   )r1   rt   s     r!   Ú_gen_non_null_countsz._TableBuilderVerboseMixin._gen_non_null_counts“  s(   è ø€ à×)Ñ)ò 	&ˆEØ�G˜9Ð%Ó%ñ	&ùs   ‚c              #  óH   K  — | j                   D ]  }t        |«      –— Œ y­w)z5Iterator with string representation of column dtypes.N)r2   r   )r1   Údtypes     r!   Ú_gen_dtypesz%_TableBuilderVerboseMixin._gen_dtypes˜  s$   è ø€ à—[‘[ò 	&ˆEÜ˜uÓ%Ó%ñ	&ùó   ‚ "N)rN   zprinting._TextAdjustment)r  rU   r  rS   rN   rU   ©rN   zSequence[str])rN   rú   ©rN   zIterator[Sequence[str]]rÜ   ©rN   zIterator[str])r[   r\   r]   r^   rø   r_   r   rý   r  r`   r   r  r  r  r  r  r  r  r(  r.  r2  r4  r7  r   r#   r!   r÷   r÷   3  sÂ   … ñð €GˆSÓØ$Ó$Ø&Ó&ØÓàò ó ð ó@ð Øò=ó ó ð=ð ò<ó ð<ó
óGó
	3ð òLó ðLð òOó ðOó	(ó	+ó
*ó&ô
&r#   r÷   c                  óf   — e Zd ZdZ	 	 	 	 	 	 dd„Zdd„Zedd„«       Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zy
)r±   z:
    Dataframe info table builder for verbose output.
    c               ó†   — || _         || _        t        | j                  «       «      | _        | j                  «       | _        y rG   ©rz   r¯   r  r  rù   r  rû   ©r1   rz   r¯   s      r!   rf   z&_DataFrameTableBuilderVerbose.__init__£  ó7   € ð ˆŒ	Ø&ˆÔÜ04°T·^±^Ó5EÓ0FˆŒØ26×2OÑ2OÓ2QˆÕ r#   c                ó  — | j                  «        | j                  «        | j                  «        | j                  «        | j	                  «        | j                  «        | j                  «        | j                  r| j                  «        yyrå   )	rÌ   rÏ   rñ   r(  r.  r2  rÚ   rÆ   rí   r0   s    r!   râ   z2_DataFrameTableBuilderVerbose._fill_non_empty_info®  sp   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$Ò$Ø×&Ñ&Õ(ð %r#   c                ó*   — | j                   rg d¢S g d¢S )r  )ú # ÚColumnúNon-Null Countr   )rC  rD  r   ©r¯   r0   s    r!   r  z%_DataFrameTableBuilderVerbose.headersº  s   € ð ×ÒÚ?Ð?Ú)Ð)r#   c                óV   — | j                   j                  d| j                  › d�«       y )NzData columns (total z
 columns):)r¿   rÊ   rq   r0   s    r!   rñ   z6_DataFrameTableBuilderVerbose.add_columns_summary_lineÁ  s#   € Ø�‰×ÑÐ1°$·.±.Ð1AÀÐLÕMr#   c              #  ó’   K  — t        | j                  «       | j                  «       | j                  «       d¬«      E d{  –—†  y7 Œ­w)r"  Tr  N)r  Ú_gen_line_numbersÚ_gen_columnsr7  r0   s    r!   r  z6_DataFrameTableBuilderVerbose._gen_rows_without_countsÄ  s?   è ø€ äØ×"Ñ"Ó$Ø×ÑÓØ×ÑÓØô	
÷ 	
ò 	
ús   ‚=A¿AÁ Ac              #  ó°   K  — t        | j                  «       | j                  «       | j                  «       | j	                  «       d¬«      E d{  –—†  y7 Œ­w©r   Tr  N)r  rI  rJ  r4  r7  r0   s    r!   r  z3_DataFrameTableBuilderVerbose._gen_rows_with_countsÍ  sK   è ø€ äØ×"Ñ"Ó$Ø×ÑÓØ×%Ñ%Ó'Ø×ÑÓØô
÷ 	
ò 	
ús   ‚AAÁAÁAc              #  óT   K  — t        | j                  «      D ]  \  }}d|› �–— Œ y­w)z6Iterator with string representation of column numbers.r   N)Ú	enumeraterm   )r1   ÚiÚ_s      r!   rI  z/_DataFrameTableBuilderVerbose._gen_line_numbers×  s-   è ø€ ä˜dŸh™hÓ'ò 	‰DˆAˆqØ�a�S�'‹Mñ	ùs   ‚&(c              #  óH   K  — | j                   D ]  }t        |«      –— Œ y­w)z4Iterator with string representation of column names.N)rm   r   r	  s     r!   rJ  z*_DataFrameTableBuilderVerbose._gen_columnsÜ  s$   è ø€ à—8‘8ò 	$ˆCÜ˜sÓ#Ó#ñ	$ùr8  N)rz   rb   r¯   r¢   rN   rZ   rÜ   r9  r:  r;  )r[   r\   r]   r^   rf   râ   r`   r  rñ   r  r  rI  rJ  r   r#   r!   r±   r±   ž  sa   „ ñð	Rð ð	Rð ð		Rð
 
ó	Ró
)ð ò*ó ð*óNó
ó
óô
$r#   r±   c                  óL   — e Zd ZdZdd„Zd	d„Zed
d„«       Zdd„Ze	dd„«       Z
y)r¼   z‡
    Abstract builder for series info table.

    Parameters
    ----------
    info : SeriesInfo.
        Instance of SeriesInfo.
    c               ó   — || _         y rG   r°   rß   s     r!   rf   z_SeriesTableBuilder.__init__ì  s	   € Ø $ˆ�	r#   c                óH   — g | _         | j                  «        | j                   S rG   )r¿   râ   r0   s    r!   r‘   z_SeriesTableBuilder.get_linesï  s   € ØˆŒØ×!Ñ!Ô#Ø�{‰{Ðr#   c                ó.   — | j                   j                  S )zSeries.rÂ   r0   s    r!   r-   z_SeriesTableBuilder.dataô  rç   r#   c                óT   — | j                   j                  d| j                  › �«       yrë   rì   r0   s    r!   rí   z)_SeriesTableBuilder.add_memory_usage_lineù  rî   r#   c                 ó   — y©z<Add lines to the info table, pertaining to non-empty series.Nr   r0   s    r!   râ   z(_SeriesTableBuilder._fill_non_empty_infoý  r3   r#   N)rz   rƒ   rN   rZ   rÛ   r�   rÜ   )r[   r\   r]   r^   rf   r‘   r`   r-   rí   r   râ   r   r#   r!   r¼   r¼   â  sA   „ ñó%óð
 òó ðóHð òKó ñKr#   r¼   c                  ó   — e Zd ZdZdd„Zy)rº   z;
    Series info table builder for non-verbose output.
    c                óž   — | j                  «        | j                  «        | j                  «        | j                  r| j	                  «        yyrX  )rÌ   rÏ   rÚ   rÆ   rí   r0   s    r!   râ   z2_SeriesTableBuilderNonVerbose._fill_non_empty_info  s@   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×$Ò$Ø×&Ñ&Õ(ð %r#   NrÜ   )r[   r\   r]   r^   râ   r   r#   r!   rº   rº     s   „ ñô)r#   rº   c                  óV   — e Zd ZdZ	 	 	 	 	 	 d	d„Zd
d„Zd
d„Zedd„«       Zdd„Z	dd„Z
y)r¹   z7
    Series info table builder for verbose output.
    c               ó†   — || _         || _        t        | j                  «       «      | _        | j                  «       | _        y rG   r>  r?  s      r!   rf   z#_SeriesTableBuilderVerbose.__init__  r@  r#   c                ó  — | j                  «        | j                  «        | j                  «        | j                  «        | j	                  «        | j                  «        | j                  «        | j                  r| j                  «        yyrX  )	rÌ   rÏ   Úadd_series_name_liner(  r.  r2  rÚ   rÆ   rí   r0   s    r!   râ   z/_SeriesTableBuilderVerbose._fill_non_empty_info   sp   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$Ò$Ø×&Ñ&Õ(ð %r#   c                óh   — | j                   j                  d| j                  j                  › �«       y )NzSeries name: )r¿   rÊ   r-   rõ   r0   s    r!   r^  z/_SeriesTableBuilderVerbose.add_series_name_line,  s$   € Ø�‰×Ñ˜]¨4¯9©9¯>©>Ð*:Ð;Õ<r#   c                ó(   — | j                   rddgS dgS )r  rE  r   rF  r0   s    r!   r  z"_SeriesTableBuilderVerbose.headers/  s    € ð ×ÒØ$ gÐ.Ð.ØˆyÐr#   c              #  óN   K  — d„ | j                  «       D «       E d{  –—†  y7 Œ­w)r"  c              3  ó"   K  — | ]  }|g–— Œ	 y ­wrG   r   )r  r6  s     r!   r  zF_SeriesTableBuilderVerbose._gen_rows_without_counts.<locals>.<genexpr>8  s   è ø€ Ò< �U”GÑ<ùs   ‚N)r7  r0   s    r!   r  z3_SeriesTableBuilderVerbose._gen_rows_without_counts6  s   è ø€ á<¨×)9Ñ)9Ó);Ô<×<Ò<ús   ‚%�#ž%c              #  ót   K  — t        | j                  «       | j                  «       d¬«      E d{  –—†  y7 Œ­wrL  )r  r4  r7  r0   s    r!   r  z0_SeriesTableBuilderVerbose._gen_rows_with_counts:  s*   è ø€ ä�t×0Ñ0Ó2°D×4DÑ4DÓ4FÈtÔT×TÒTús   ‚.8°6±8N)rz   rƒ   r¯   r¢   rN   rZ   rÜ   r9  r:  )r[   r\   r]   r^   rf   râ   r^  r`   r  r  r  r   r#   r!   r¹   r¹     sW   „ ñð	Rð ð	Rð ð		Rð
 
ó	Ró
)ó=ð òó ðó=ôUr#   r¹   c                ór   — | j                   j                  «       j                  d„ «      j                  «       S )zK
    Create mapping between datatypes and their number of occurrences.
    c                ó   — | j                   S rG   rô   )r    s    r!   ú<lambda>z-_get_dataframe_dtype_counts.<locals>.<lambda>D  s
   € °a·f±f€ r#   )r2   Úvalue_countsÚgroupbyrw   )Údfs    r!   rh   rh   ?  s,   € ð
 �9‰9×!Ñ!Ó#×+Ñ+Ñ,<Ó=×AÑAÓCÐCr#   )r   Úfloatr   rU   rN   rU   rG   )r&   r   rN   r.   )ri  r   rN   rP   )1Ú
__future__r   Úabcr   r   Ú	functoolsr   r’   Útypingr   Úpandas._config.configr   r(   Úpandas.io.formatsr	   r”   Úpandas.io.formats.printingr
   r   Úcollections.abcr   r   r   r   Úpandas._typingr   r   Úpandasr   r   r   r   r"   r)   r+   rb   rƒ   rŽ   r{   r‡   r™   rµ   r²   r÷   r±   r¼   rº   r¹   rh   r   r#   r!   ú<module>ru     s>  ðÝ "÷õ &Û 
Ý  å :å +÷ñ
 ÷ó ÷÷
ñ õ +ó,ð@ '+ðØ#ðàóôP�ô PôfF�Iô FôR9=�ô 9=÷x0ñ 0ô$MÐ0ô Mô`(Ð-ô (ôV5E˜Cô 5Eôp0HÐ2ô 0Hôf>Ð'=ô >ô$h&Ð 5ô h&ôVA$Ð$:Ð<Uô A$ôHKÐ/ô Kô@)Ð$7ô )ô,UÐ!4Ð6Oô ,Uô^Dr#   