ó
    ¬œ‘hm  ã                  ó°  • S SK Jr  S SKJrJr  S SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  \	(       a  S S	KJrJrJrJr  S S
KJrJr  S SKJrJrJr  \" S5      r\" S5      r\" S5      r\" S5      r SS\\\\ SS.r!\" S5      r"\" S5      r#SSS\\"\#SS.r$\" S5      r%S9S jr&S:S jr' S;   S<S jjr( " S S\5      r) " S S\)5      r* " S  S!\)5      r+ " S" S#5      r, " S$ S%\,5      r- " S& S'\,5      r. " S( S)\5      r/ " S* S+\/5      r0 " S, S-\05      r1 " S. S/\/5      r2 " S0 S1\0\25      r3 " S2 S3\/5      r4 " S4 S5\45      r5 " S6 S7\4\25      r6S=S8 jr7g)>é    )Úannotations)ÚABCÚabstractmethodN)Údedent)ÚTYPE_CHECKING©Ú
get_option)Úformat)Úpprint_thing)ÚIterableÚIteratorÚMappingÚSequence)ÚDtypeÚWriteBuffer)Ú	DataFrameÚIndexÚSeriesa      max_cols : int, optional
        When to switch from the verbose to the truncated output. If the
        DataFrame has more than `max_cols` columns, the truncated output
        is used. By default, the setting in
        ``pandas.options.display.max_info_columns`` is used.aR      show_counts : bool, optional
        Whether to show the non-null counts. By default, this is shown
        only if the DataFrame is smaller than
        ``pandas.options.display.max_info_rows`` and
        ``pandas.options.display.max_info_columns``. A value of True always
        shows the counts, and False never shows the counts.a�      >>> int_values = [1, 2, 3, 4, 5]
    >>> text_values = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']
    >>> float_values = [0.0, 0.25, 0.5, 0.75, 1.0]
    >>> df = pd.DataFrame({"int_col": int_values, "text_col": text_values,
    ...                   "float_col": float_values})
    >>> df
        int_col text_col  float_col
    0        1    alpha       0.00
    1        2     beta       0.25
    2        3    gamma       0.50
    3        4    delta       0.75
    4        5  epsilon       1.00

    Prints information of all columns:

    >>> df.info(verbose=True)
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 5 entries, 0 to 4
    Data columns (total 3 columns):
     #   Column     Non-Null Count  Dtype
    ---  ------     --------------  -----
     0   int_col    5 non-null      int64
     1   text_col   5 non-null      object
     2   float_col  5 non-null      float64
    dtypes: float64(1), int64(1), object(1)
    memory usage: 248.0+ bytes

    Prints a summary of columns count and its dtypes but not per column
    information:

    >>> df.info(verbose=False)
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 5 entries, 0 to 4
    Columns: 3 entries, int_col to float_col
    dtypes: float64(1), int64(1), object(1)
    memory usage: 248.0+ bytes

    Pipe output of DataFrame.info to buffer instead of sys.stdout, get
    buffer content and writes to a text file:

    >>> import io
    >>> buffer = io.StringIO()
    >>> df.info(buf=buffer)
    >>> s = buffer.getvalue()
    >>> with open("df_info.txt", "w",
    ...           encoding="utf-8") as f:  # doctest: +SKIP
    ...     f.write(s)
    260

    The `memory_usage` parameter allows deep introspection mode, specially
    useful for big DataFrames and fine-tune memory optimization:

    >>> random_strings_array = np.random.choice(['a', 'b', 'c'], 10 ** 6)
    >>> df = pd.DataFrame({
    ...     'column_1': np.random.choice(['a', 'b', 'c'], 10 ** 6),
    ...     'column_2': np.random.choice(['a', 'b', 'c'], 10 ** 6),
    ...     'column_3': np.random.choice(['a', 'b', 'c'], 10 ** 6)
    ... })
    >>> df.info()
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 1000000 entries, 0 to 999999
    Data columns (total 3 columns):
     #   Column    Non-Null Count    Dtype
    ---  ------    --------------    -----
     0   column_1  1000000 non-null  object
     1   column_2  1000000 non-null  object
     2   column_3  1000000 non-null  object
    dtypes: object(3)
    memory usage: 22.9+ MB

    >>> df.info(memory_usage='deep')
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 1000000 entries, 0 to 999999
    Data columns (total 3 columns):
     #   Column    Non-Null Count    Dtype
    ---  ------    --------------    -----
     0   column_1  1000000 non-null  object
     1   column_2  1000000 non-null  object
     2   column_3  1000000 non-null  object
    dtypes: object(3)
    memory usage: 165.9 MBz”    DataFrame.describe: Generate descriptive statistics of DataFrame
        columns.
    DataFrame.memory_usage: Memory usage of DataFrame columns.r   z and columnsÚ )ÚklassÚtype_subÚmax_cols_subÚshow_counts_subÚexamples_subÚsee_also_subÚversion_added_subaî      >>> int_values = [1, 2, 3, 4, 5]
    >>> text_values = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']
    >>> s = pd.Series(text_values, index=int_values)
    >>> s.info()
    <class 'pandas.core.series.Series'>
    Index: 5 entries, 1 to 5
    Series name: None
    Non-Null Count  Dtype
    --------------  -----
    5 non-null      object
    dtypes: object(1)
    memory usage: 80.0+ bytes

    Prints a summary excluding information about its values:

    >>> s.info(verbose=False)
    <class 'pandas.core.series.Series'>
    Index: 5 entries, 1 to 5
    dtypes: object(1)
    memory usage: 80.0+ bytes

    Pipe output of Series.info to buffer instead of sys.stdout, get
    buffer content and writes to a text file:

    >>> import io
    >>> buffer = io.StringIO()
    >>> s.info(buf=buffer)
    >>> s = buffer.getvalue()
    >>> with open("df_info.txt", "w",
    ...           encoding="utf-8") as f:  # doctest: +SKIP
    ...     f.write(s)
    260

    The `memory_usage` parameter allows deep introspection mode, specially
    useful for big Series and fine-tune memory optimization:

    >>> random_strings_array = np.random.choice(['a', 'b', 'c'], 10 ** 6)
    >>> s = pd.Series(np.random.choice(['a', 'b', 'c'], 10 ** 6))
    >>> s.info()
    <class 'pandas.core.series.Series'>
    RangeIndex: 1000000 entries, 0 to 999999
    Series name: None
    Non-Null Count    Dtype
    --------------    -----
    1000000 non-null  object
    dtypes: object(1)
    memory usage: 7.6+ MB

    >>> s.info(memory_usage='deep')
    <class 'pandas.core.series.Series'>
    RangeIndex: 1000000 entries, 0 to 999999
    Series name: None
    Non-Null Count    Dtype
    --------------    -----
    1000000 non-null  object
    dtypes: object(1)
    memory usage: 55.3 MBzp    Series.describe: Generate descriptive statistics of Series.
    Series.memory_usage: Memory usage of Series.r   z
.. versionadded:: 1.4.0
aÅ  
    Print a concise summary of a {klass}.

    This method prints information about a {klass} including
    the index dtype{type_sub}, non-null values and memory usage.
    {version_added_sub}
    Parameters
    ----------
    verbose : bool, optional
        Whether to print the full summary. By default, the setting in
        ``pandas.options.display.max_info_columns`` is followed.
    buf : writable buffer, defaults to sys.stdout
        Where to send the output. By default, the output is printed to
        sys.stdout. Pass a writable buffer if you need to further process
        the output.
    {max_cols_sub}
    memory_usage : bool, str, optional
        Specifies whether total memory usage of the {klass}
        elements (including the index) should be displayed. By default,
        this follows the ``pandas.options.display.memory_usage`` setting.

        True always show memory usage. False never shows memory usage.
        A value of 'deep' is equivalent to "True with deep introspection".
        Memory usage is shown in human-readable units (base-2
        representation). Without deep introspection a memory estimation is
        made based in column dtype and number of rows assuming values
        consume the same memory amount for corresponding dtypes. With deep
        memory introspection, a real memory usage calculation is performed
        at the cost of computational resources. See the
        :ref:`Frequently Asked Questions <df-memory-usage>` for more
        details.
    {show_counts_sub}

    Returns
    -------
    None
        This method prints a summary of a {klass} and returns None.

    See Also
    --------
    {see_also_sub}

    Examples
    --------
    {examples_sub}
    c                ó<   • [        U 5      SU R                  U5      $ )as  
Make string of specified length, padding to the right if necessary.

Parameters
----------
s : Union[str, Dtype]
    String to be formatted.
space : int
    Length to force string to be of.

Returns
-------
str
    String coerced to given length.

Examples
--------
>>> pd.io.formats.info._put_str("panda", 6)
'panda '
>>> pd.io.formats.info._put_str("panda", 4)
'pand'
N)ÚstrÚljust)ÚsÚspaces     ÚZC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/io/formats/info.pyÚ_put_strr#   %  s   € ô. ˆq‹6�&�5ˆ>×Ñ Ó&Ð&ó    c                óR   • S H  nU S:  a  U S U SU 3s  $ U S-  n M     U S U S3$ )a3  
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      r"   Ú_sizeof_fmtr0   ?  sL   € ó0 /ˆØ�‹<Ø˜$�Z Ð/¨q°°Ð4Ò4Øˆv‰Šñ /ð �$ˆZ˜Ð' sÐ+Ð+r$   c                ó"   • U c  [        S5      n U $ )z5Get memory usage based on inputs and display options.zdisplay.memory_usager   )Úmemory_usages    r"   Ú_initialize_memory_usager3   ^  s   € ð ÑÜ!Ð"8Ó9ˆØÐr$   c                  óö   • \ rS rSr% SrS\S'   S\S'   \\SS j5       5       r\\SS j5       5       r	\\SS	 j5       5       r
\\SS
 j5       5       r\SS j5       r\SS j5       r\          SS j5       rSrg)Ú	_BaseInfoig  aB  
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 | strr2   c                ó   • g)zq
Dtypes.

Returns
-------
dtypes : sequence
    Dtype of each of the DataFrame's columns (or one series column).
Nr,   ©Úselfs    r"   ÚdtypesÚ_BaseInfo.dtypesx  ó   � r$   c                ó   • g)ú!Mapping dtype - number of counts.Nr,   r:   s    r"   Údtype_countsÚ_BaseInfo.dtype_counts„  r>   r$   c                ó   • g)úBSequence of non-null counts for all columns or column (if series).Nr,   r:   s    r"   Únon_null_countsÚ_BaseInfo.non_null_counts‰  r>   r$   c                ó   • g)zl
Memory usage in bytes.

Returns
-------
memory_usage_bytes : int
    Object's total memory usage in bytes.
Nr,   r:   s    r"   Úmemory_usage_bytesÚ_BaseInfo.memory_usage_bytesŽ  r>   r$   c                óH   • [        U R                  U R                  5       S3$ )z0Memory usage in a form of human readable string.Ú
)r0   rH   r.   r:   s    r"   Úmemory_usage_stringÚ_BaseInfo.memory_usage_stringš  s%   € ô ˜d×5Ñ5°t×7JÑ7JÓKÐLÈBÐOÐOr$   c                óÂ   • SnU R                   (       aK  U R                   S:w  a;  SU R                  ;   d)  U R                  R                  R	                  5       (       a  SnU$ )Nr   ÚdeepÚobjectÚ+)r2   rA   r7   ÚindexÚ_is_memory_usage_qualified)r;   r.   s     r"   r.   Ú_BaseInfo.size_qualifierŸ  sP   € àˆØ××Ø× Ñ  FÓ*ð
  × 1Ñ 1Ó1Ø—y‘y—‘×AÑA×CÑCà%(�NØÐr$   c               ó   • g ©Nr,   )r;   ÚbufÚmax_colsÚverboseÚshow_countss        r"   ÚrenderÚ_BaseInfo.render®  s   € ð 	r$   r,   N©ÚreturnzIterable[Dtype]©r^   úMapping[str, int]©r^   úSequence[int]©r^   Úint©r^   r   ©
rW   úWriteBuffer[str] | NonerX   ú
int | NonerY   úbool | NonerZ   ri   r^   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Úpropertyr   r<   rA   rE   rH   rL   r.   r[   Ú__static_attributes__r,   r$   r"   r5   r5   g  sõ   ‡ ñð ÓØÓàØóó ó ðð Øó0ó ó ð0ð ØóQó ó ðQð Øóó ó ðð óPó ðPð óó ðð ðð %ðð ð	ð
 ðð !ðð 
óó ór$   r5   c                  óÈ   • \ rS rSrSr S     SS jjr\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS	 j5       r\SS
 j5       r          SS jrSrg)ÚDataFrameInfoiº  z(
Class storing dataframe-specific info.
Nc                ó0   • Xl         [        U5      U l        g rV   ©r7   r3   r2   ©r;   r7   r2   s      r"   Ú__init__ÚDataFrameInfo.__init__¿  s   € ð
  $Œ	Ü4°\ÓBˆÕr$   c                ó,   • [        U R                  5      $ rV   )Ú_get_dataframe_dtype_countsr7   r:   s    r"   rA   ÚDataFrameInfo.dtype_countsÇ  s   € ä*¨4¯9©9Ó5Ð5r$   c                ó.   • U R                   R                  $ )zO
Dtypes.

Returns
-------
dtypes
    Dtype of each of the DataFrame's columns.
©r7   r<   r:   s    r"   r<   ÚDataFrameInfo.dtypesË  s   € ð �y‰y×ÑÐr$   c                ó.   • U R                   R                  $ )zJ
Column names.

Returns
-------
ids : Index
    DataFrame's column names.
)r7   Úcolumnsr:   s    r"   ÚidsÚDataFrameInfo.ids×  s   € ð �y‰y× Ñ Ð r$   c                ó,   • [        U R                  5      $ ©z#Number of columns to be summarized.)Úlenr‚   r:   s    r"   Ú	col_countÚDataFrameInfo.col_countã  s   € ô �4—8‘8‹}Ðr$   c                ó6   • U R                   R                  5       $ )rD   ©r7   Úcountr:   s    r"   rE   ÚDataFrameInfo.non_null_countsè  s   € ð �y‰y�‰Ó Ð r$   c                óp   • U R                   S:H  nU R                  R                  SUS9R                  5       $ )NrO   T©rR   rO   )r2   r7   Úsum©r;   rO   s     r"   rH   Ú DataFrameInfo.memory_usage_bytesí  s5   € à× Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ð<×@Ñ@ÓBÐBr$   c               ó>   • [        U UUUS9nUR                  U5        g )N)ÚinforX   rY   rZ   )Ú_DataFrameInfoPrinterÚ	to_buffer©r;   rW   rX   rY   rZ   Úprinters         r"   r[   ÚDataFrameInfo.renderò  s*   € ô (ØØØØ#ñ	
ˆð 	×Ñ˜#Õr$   ©r7   r2   rV   )r7   r   r2   úbool | str | Noner^   rj   r_   r]   ©r^   r   rc   ra   rf   )rk   rl   rm   rn   ro   rx   rq   rA   r<   r‚   r‡   rE   rH   r[   rr   r,   r$   r"   rt   rt   º  sâ   † ñð +/ðCàðCð (ðCð 
õ	Cð ó6ó ð6ð ó	 ó ð	 ð ó	!ó ð	!ð óó ðð ó!ó ð!ð óCó ðCðð %ðð ð	ð
 ðð !ðð 
÷r$   rt   c                  ó¬   • \ rS rSrSr S     SS jjrSSSSS.         SS jjr\SS j5       r\SS j5       r	\SS	 j5       r
\SS
 j5       rSrg)Ú
SeriesInfoi  z%
Class storing series-specific info.
Nc                ó0   • Xl         [        U5      U l        g rV   rv   rw   s      r"   rx   ÚSeriesInfo.__init__  s   € ð
 !Œ	Ü4°\ÓBˆÕr$   )rW   rX   rY   rZ   c               óX   • Ub  [        S5      e[        U UUS9nUR                  U5        g )NzIArgument `max_cols` can only be passed in DataFrame.info, not Series.info)r“   rY   rZ   )Ú
ValueErrorÚ_SeriesInfoPrinterr•   r–   s         r"   r[   ÚSeriesInfo.render  sA   € ð ÑÜð5óð ô %ØØØ#ñ
ˆð
 	×Ñ˜#Õr$   c                ó8   • U R                   R                  5       /$ rV   rŠ   r:   s    r"   rE   ÚSeriesInfo.non_null_counts$  s   € à—	‘	—‘Ó!Ð"Ð"r$   c                ó0   • U R                   R                  /$ rV   r~   r:   s    r"   r<   ÚSeriesInfo.dtypes(  s   € à—	‘	× Ñ Ð!Ð!r$   c                óD   • SSK Jn  [        U" U R                  5      5      $ )Nr   )r   )Úpandas.core.framer   r{   r7   )r;   r   s     r"   rA   ÚSeriesInfo.dtype_counts,  s   € å/ä*©9°T·Y±YÓ+?Ó@Ð@r$   c                óT   • U R                   S:H  nU R                  R                  SUS9$ )zkMemory usage in bytes.

Returns
-------
memory_usage_bytes : int
    Object's total memory usage in bytes.
rO   TrŽ   )r2   r7   r�   s     r"   rH   ÚSeriesInfo.memory_usage_bytes2  s.   € ð × Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ð<Ð<r$   r™   rV   )r7   r   r2   rš   r^   rj   rf   ra   r]   r_   rc   )rk   rl   rm   rn   ro   rx   r[   rq   rE   r<   rA   rH   rr   r,   r$   r"   r�   r�     sÈ   † ñð +/ðCàðCð (ðCð 
õ	Cð (,Ø#Ø#Ø#'ñð %ðð ð	ð
 ðð !ðð 
õð( ó#ó ð#ð ó"ó ð"ð óAó ðAð
 ó	=ó ó	=r$   r�   c                  ó:   • \ rS rSrSrSSS jjr\S	S j5       rSrg)
Ú_InfoPrinterAbstracti?  z.
Class for printing dataframe or series info.
Nc                ó–   • U R                  5       nUR                  5       nUc  [        R                  n[        R
                  " X5        g)z Save dataframe info into buffer.N)Ú_create_table_builderÚ	get_linesÚsysÚstdoutÚfmtÚbuffer_put_lines)r;   rW   Útable_builderÚliness       r"   r•   Ú_InfoPrinterAbstract.to_bufferD  s:   € à×2Ñ2Ó4ˆØ×'Ñ'Ó)ˆØ‰;Ü—*‘*ˆCÜ×Ò˜SÕ(r$   c                ó   • g)z!Create instance of table builder.Nr,   r:   s    r"   r°   Ú*_InfoPrinterAbstract._create_table_builderL  r>   r$   r,   rV   )rW   rg   r^   rj   )r^   Ú_TableBuilderAbstract)	rk   rl   rm   rn   ro   r•   r   r°   rr   r,   r$   r"   r®   r®   ?  s    † ñö)ð ó0ó ó0r$   r®   c                  ó¬   • \ rS rSrSr   S         SS jjr\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
SS	 jrSS
 jrSS jrSrg)r”   iQ  aK  
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                ó–   • Xl         UR                  U l        X0l        U R                  U5      U l        U R                  U5      U l        g rV   )r“   r7   rY   Ú_initialize_max_colsrX   Ú_initialize_show_countsrZ   )r;   r“   rX   rY   rZ   s        r"   rx   Ú_DataFrameInfoPrinter.__init__a  s>   € ð Œ	Ø—I‘IˆŒ	ØŒØ×1Ñ1°(Ó;ˆŒØ×7Ñ7¸ÓDˆÕr$   c                óF   • [        S[        U R                  5      S-   5      $ )z"Maximum info rows to be displayed.zdisplay.max_info_rowsé   )r	   r†   r7   r:   s    r"   Úmax_rowsÚ_DataFrameInfoPrinter.max_rowsn  s   € ô Ð1´3°t·y±y³>ÀAÑ3EÓFÐFr$   c                óF   • [        U R                  U R                  :„  5      $ )zDCheck if number of columns to be summarized does not exceed maximum.)Úboolr‡   rX   r:   s    r"   Úexceeds_info_colsÚ'_DataFrameInfoPrinter.exceeds_info_colss  s   € ô �D—N‘N T§]¡]Ñ2Ó3Ð3r$   c                óX   • [        [        U R                  5      U R                  :„  5      $ )zACheck if number of rows to be summarized does not exceed maximum.)rÆ   r†   r7   rÃ   r:   s    r"   Úexceeds_info_rowsÚ'_DataFrameInfoPrinter.exceeds_info_rowsx  s    € ô ”C˜Ÿ	™	“N T§]¡]Ñ2Ó3Ð3r$   c                ó.   • U R                   R                  $ r…   ©r“   r‡   r:   s    r"   r‡   Ú_DataFrameInfoPrinter.col_count}  ó   € ð �y‰y×"Ñ"Ð"r$   c                ó>   • Uc  [        SU R                  S-   5      $ U$ )Nzdisplay.max_info_columnsrÂ   )r	   r‡   )r;   rX   s     r"   r¾   Ú*_DataFrameInfoPrinter._initialize_max_cols‚  s$   € ØÑÜÐ8¸$¿.¹.È1Ñ:LÓMÐMØˆr$   c                óp   • Uc2  [        U R                  (       + =(       a    U R                  (       + 5      $ U$ rV   )rÆ   rÇ   rÊ   ©r;   rZ   s     r"   r¿   Ú-_DataFrameInfoPrinter._initialize_show_counts‡  s0   € ØÑÜ˜D×2Ñ2Ô2×Q¸4×;QÑ;QÔ7QÓRÐRàÐr$   c                ó(  • U R                   (       a  [        U R                  U R                  S9$ U R                   SL a  [	        U R                  S9$ U R
                  (       a  [	        U R                  S9$ [        U R                  U R                  S9$ )zK
Create instance of table builder based on verbosity and display settings.
©r“   Úwith_countsF©r“   )rY   Ú_DataFrameTableBuilderVerboser“   rZ   Ú _DataFrameTableBuilderNonVerboserÇ   r:   s    r"   r°   Ú+_DataFrameInfoPrinter._create_table_builder�  sz   € ð �<�<Ü0Ø—Y‘YØ ×,Ñ,ñð ð �\‰\˜UÒ"Ü3¸¿¹ÑCÐCØ×#×#Ü3¸¿¹ÑCÐCä0Ø—Y‘YØ ×,Ñ,ñð r$   )r7   r“   rX   rZ   rY   )NNN)
r“   rt   rX   rh   rY   ri   rZ   ri   r^   rj   rc   ©r^   rÆ   )rX   rh   r^   rd   ©rZ   ri   r^   rÆ   )r^   Ú_DataFrameTableBuilder)rk   rl   rm   rn   ro   rx   rq   rÃ   rÇ   rÊ   r‡   r¾   r¿   r°   rr   r,   r$   r"   r”   r”   Q  s®   † ñð$  $Ø#Ø#'ðEàðEð ðEð ð	Eð
 !ðEð 
õEð óGó ðGð ó4ó ð4ð ó4ó ð4ð ó#ó ð#ôô
÷r$   r”   c                  óL   • \ rS rSrSr  S       S	S jjrS
S jrSS jrSrg)r¢   i¡  zë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                ój   • Xl         UR                  U l        X l        U R                  U5      U l        g rV   )r“   r7   rY   r¿   rZ   )r;   r“   rY   rZ   s       r"   rx   Ú_SeriesInfoPrinter.__init__®  s,   € ð Œ	Ø—I‘IˆŒ	ØŒØ×7Ñ7¸ÓDˆÕr$   c                ó    • U R                   (       d  U R                   c  [        U R                  U R                  S9$ [	        U R                  S9$ )z6
Create instance of table builder based on verbosity.
rÖ   rØ   )rY   Ú_SeriesTableBuilderVerboser“   rZ   Ú_SeriesTableBuilderNonVerboser:   s    r"   r°   Ú(_SeriesInfoPrinter._create_table_builder¹  sB   € ð �<�<˜4Ÿ<™<Ñ/Ü-Ø—Y‘YØ ×,Ñ,ñð ô
 1°d·i±iÑ@Ð@r$   c                ó   • Uc  gU$ )NTr,   rÓ   s     r"   r¿   Ú*_SeriesInfoPrinter._initialize_show_countsÅ  s   € ØÑØàÐr$   )r7   r“   rZ   rY   )NN)r“   r�   rY   ri   rZ   ri   r^   rj   )r^   Ú_SeriesTableBuilderrÝ   )	rk   rl   rm   rn   ro   rx   r°   r¿   rr   r,   r$   r"   r¢   r¢   ¡  sJ   † ñ
ð  $Ø#'ð		Eàð	Eð ð	Eð !ð		Eð
 
õ	Eô
A÷r$   r¢   c                  óØ   • \ rS rSr% SrS\S'   S\S'   \SS j5       r\SS j5       r	\SS	 j5       r
\SS
 j5       r\SS j5       r\SS j5       r\SS j5       rSS jrSS jrSS jrSrg)r»   iÌ  z"
Abstract builder for info table.
ú	list[str]Ú_linesr5   r“   c                ó   • g)z-Product in a form of list of lines (strings).Nr,   r:   s    r"   r±   Ú_TableBuilderAbstract.get_linesÔ  r>   r$   c                ó.   • U R                   R                  $ rV   ©r“   r7   r:   s    r"   r7   Ú_TableBuilderAbstract.dataØ  s   € à�y‰y�~‰~Ðr$   c                ó.   • U R                   R                  $ )z*Dtypes of each of the DataFrame's columns.)r“   r<   r:   s    r"   r<   Ú_TableBuilderAbstract.dtypesÜ  s   € ð �y‰y×ÑÐr$   c                ó.   • U R                   R                  $ )r@   )r“   rA   r:   s    r"   rA   Ú"_TableBuilderAbstract.dtype_countsá  s   € ð �y‰y×%Ñ%Ð%r$   c                ó@   • [        U R                  R                  5      $ )z Whether to display memory usage.)rÆ   r“   r2   r:   s    r"   Údisplay_memory_usageÚ*_TableBuilderAbstract.display_memory_usageæ  s   € ô �D—I‘I×*Ñ*Ó+Ð+r$   c                ó.   • U R                   R                  $ )z/Memory usage string with proper size qualifier.)r“   rL   r:   s    r"   rL   Ú)_TableBuilderAbstract.memory_usage_stringë  s   € ð �y‰y×,Ñ,Ð,r$   c                ó.   • U R                   R                  $ rV   )r“   rE   r:   s    r"   rE   Ú%_TableBuilderAbstract.non_null_countsð  s   € à�y‰y×(Ñ(Ð(r$   c                ór   • U R                   R                  [        [        U R                  5      5      5        g)z>Add line with string representation of dataframe to the table.N)rë   Úappendr   Útyper7   r:   s    r"   Úadd_object_type_lineÚ*_TableBuilderAbstract.add_object_type_lineô  s!   € à�‰×Ñœ3œt D§I¡I›Ó/Õ0r$   c                ó~   • U R                   R                  U R                  R                  R	                  5       5        g)z,Add line with range of indices to the table.N)rë   rý   r7   rR   Ú_summaryr:   s    r"   Úadd_index_range_lineÚ*_TableBuilderAbstract.add_index_range_lineø  s%   € à�‰×Ñ˜4Ÿ9™9Ÿ?™?×3Ñ3Ó5Õ6r$   c                óæ   • [        U R                  R                  5       5       VVs/ s H  u  pU SUS S3PM     nnnU R                  R	                  SSR                  U5       35        gs  snnf )z2Add summary line with dtypes present in dataframe.Ú(ÚdÚ)zdtypes: z, N)ÚsortedrA   Úitemsrë   rý   Újoin)r;   ÚkeyÚvalÚcollected_dtypess       r"   Úadd_dtypes_lineÚ%_TableBuilderAbstract.add_dtypes_lineü  sq   € ô /5°T×5FÑ5F×5LÑ5LÓ5NÔ.Oô
Ú.O¡( #ˆsˆe�1�S˜�G˜1ÓÑ.Oð 	ñ 
ð 	�‰×Ñ˜X d§i¡iÐ0@Ó&AÐ%BÐCÕDùó
s   §A-r,   N©r^   rê   )r^   r6   r]   r_   rÜ   re   ra   ©r^   rj   )rk   rl   rm   rn   ro   rp   r   r±   rq   r7   r<   rA   rö   rL   rE   rÿ   r  r  rr   r,   r$   r"   r»   r»   Ì  s®   ‡ ñð ÓØ
ƒOàó<ó ð<ð óó ðð ó ó ð ð ó&ó ð&ð ó,ó ð,ð ó-ó ð-ð ó)ó ð)ô1ô7÷Er$   r»   c                  ó�   • \ rS rSrS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5       r\
SS	 j5       rSS
 jrSrg)rÞ   i  zx
Abstract builder for dataframe info table.

Parameters
----------
info : DataFrameInfo.
    Instance of DataFrameInfo.
c               ó   • Xl         g rV   rØ   ©r;   r“   s     r"   rx   Ú_DataFrameTableBuilder.__init__  s   € Ø#'�	r$   c                ó    • / U l         U R                  S:X  a  U R                  5         U R                   $ U R                  5         U R                   $ )Nr   )rë   r‡   Ú_fill_empty_infoÚ_fill_non_empty_infor:   s    r"   r±   Ú _DataFrameTableBuilder.get_lines  sE   € ØˆŒØ�>‰>˜QÓØ×!Ñ!Ô#ð �{‰{Ðð ×%Ñ%Ô'Ø�{‰{Ðr$   c                ó¼   • U R                  5         U R                  5         U R                  R                  S[	        U R
                  5      R                   S35        g)z;Add lines to the info table, pertaining to empty dataframe.zEmpty rK   N)rÿ   r  rë   rý   rþ   r7   rk   r:   s    r"   r  Ú'_DataFrameTableBuilder._fill_empty_info  sD   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø�‰×Ñ˜V¤D¨¯©£O×$<Ñ$<Ð#=¸RÐ@ÕAr$   c                ó   • g©z?Add lines to the info table, pertaining to non-empty dataframe.Nr,   r:   s    r"   r  Ú+_DataFrameTableBuilder._fill_non_empty_info  r>   r$   c                ó.   • U R                   R                  $ )z
DataFrame.rï   r:   s    r"   r7   Ú_DataFrameTableBuilder.data#  ó   € ð �y‰y�~‰~Ðr$   c                ó.   • U R                   R                  $ )zDataframe columns.)r“   r‚   r:   s    r"   r‚   Ú_DataFrameTableBuilder.ids(  s   € ð �y‰y�}‰}Ðr$   c                ó.   • U R                   R                  $ )z-Number of dataframe columns to be summarized.rÍ   r:   s    r"   r‡   Ú _DataFrameTableBuilder.col_count-  rÏ   r$   c                óT   • U R                   R                  SU R                   35        g©z!Add line containing memory usage.zmemory usage: N©rë   rý   rL   r:   s    r"   Úadd_memory_usage_lineÚ,_DataFrameTableBuilder.add_memory_usage_line2  ó"   € à�‰×Ñ˜^¨D×,DÑ,DÐ+EÐFÕGr$   ©rë   r“   N)r“   rt   r^   rj   r  r  )r^   r   r›   rc   )rk   rl   rm   rn   ro   rx   r±   r  r   r  rq   r7   r‚   r‡   r*  rr   r,   r$   r"   rÞ   rÞ     so   † ñô(ôôBð óNó ðNð óó ðð óó ðð ó#ó ð#÷Hr$   rÞ   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)rÚ   i7  z6
Dataframe info table builder for non-verbose output.
c                óÈ   • U R                  5         U R                  5         U R                  5         U R                  5         U R                  (       a  U R                  5         ggr  )rÿ   r  Úadd_columns_summary_liner  rö   r*  r:   s    r"   r  Ú5_DataFrameTableBuilderNonVerbose._fill_non_empty_info<  sL   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×$×$Ø×&Ñ&Õ(ð %r$   c                óh   • U R                   R                  U R                  R                  SS95        g )NÚColumns©Úname)rë   rý   r‚   r  r:   s    r"   r0  Ú9_DataFrameTableBuilderNonVerbose.add_columns_summary_lineE  s&   € Ø�‰×Ñ˜4Ÿ8™8×,Ñ,°)Ð,Ð<Õ=r$   r,   Nr  )rk   rl   rm   rn   ro   r  r0  rr   r,   r$   r"   rÚ   rÚ   7  s   † ñô)÷>r$   rÚ   c                  óð   • \ rS rSr% SrSrS\S'   S\S'   S\S	'   S
\S'   \\SS j5       5       r	\SS j5       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rSS jrSS jrSS jrSrg)Ú_TableBuilderVerboseMixiniI  z 
Mixin for verbose info output.
z  r   ÚSPACINGzSequence[Sequence[str]]Ústrrowsrb   Úgross_column_widthsrÆ   r×   c                ó   • g)ú.Headers names of the columns in verbose table.Nr,   r:   s    r"   ÚheadersÚ!_TableBuilderVerboseMixin.headersS  r>   r$   c                óX   • U R                    Vs/ s H  n[        U5      PM     sn$ s  snf )z'Widths of header columns (only titles).)r>  r†   ©r;   Úcols     r"   Úheader_column_widthsÚ._TableBuilderVerboseMixin.header_column_widthsX  s$   € ð %)§L¢LÓ1¢L˜S”�C–¡LÑ1Ð1ùÒ1s   �'c                ó†   • U R                  5       n[        U R                  U5       Vs/ s H  n[        U6 PM     sn$ s  snf )zAGet widths of columns containing both headers and actual content.)Ú_get_body_column_widthsÚziprC  Úmax)r;   Úbody_column_widthsÚwidthss      r"   Ú_get_gross_column_widthsÚ2_TableBuilderVerboseMixin._get_gross_column_widths]  sJ   € à!×9Ñ9Ó;Ðô ˜d×7Ñ7Ð9KÔLó
âL�ô �‹LÙLñ
ð 	
ùò 
s   ©>c                óˆ   • [        [        U R                  6 5      nU Vs/ s H  n[        S U 5       5      PM     sn$ s  snf )z$Get widths of table content columns.c              3  ó8   #   • U  H  n[        U5      v •  M     g 7frV   )r†   )Ú.0r/   s     r"   Ú	<genexpr>ÚD_TableBuilderVerboseMixin._get_body_column_widths.<locals>.<genexpr>h  s   é € Ð(¢C˜q”C˜—F�F¢Cùs   ‚)ÚlistrG  r:  rH  )r;   ÚstrcolsrB  s      r"   rF  Ú1_TableBuilderVerboseMixin._get_body_column_widthse  s8   € ä+/´°T·\±\Ð0BÓ+CˆÙ4;Ó<²G¨S”Ñ(¡CÓ(Ö(±GÑ<Ð<ùÒ<s    ?c                ód   • U R                   (       a  U R                  5       $ U R                  5       $ )zl
Generator function yielding rows content.

Each element represents a row comprising a sequence of strings.
)r×   Ú_gen_rows_with_countsÚ_gen_rows_without_countsr:   s    r"   Ú	_gen_rowsÚ#_TableBuilderVerboseMixin._gen_rowsj  s+   € ð ××Ø×-Ñ-Ó/Ð/à×0Ñ0Ó2Ð2r$   c                ó   • g©z=Iterator with string representation of body data with counts.Nr,   r:   s    r"   rV  Ú/_TableBuilderVerboseMixin._gen_rows_with_countsu  r>   r$   c                ó   • g©z@Iterator with string representation of body data without counts.Nr,   r:   s    r"   rW  Ú2_TableBuilderVerboseMixin._gen_rows_without_countsy  r>   r$   c           
     óô   • U R                   R                  [        U R                  U R                  5       VVs/ s H  u  p[        X5      PM     snn5      nU R                  R                  U5        g s  snnf rV   )r9  r  rG  r>  r;  r#   rë   rý   )r;   ÚheaderÚ	col_widthÚheader_lines       r"   Úadd_header_lineÚ)_TableBuilderVerboseMixin.add_header_line}  se   € Ø—l‘l×'Ñ'ô *-¨T¯\©\¸4×;SÑ;SÔ)Tôâ)TÑ%�Fô ˜Ö+Ù)Tòó
ˆð 	�‰×Ñ˜;Õ'ùós   ¹A4
c           
     óü   • U R                   R                  [        U R                  U R                  5       VVs/ s H  u  p[        SU-  U5      PM     snn5      nU R                  R                  U5        g s  snnf )NÚ-)r9  r  rG  rC  r;  r#   rë   rý   )r;   Úheader_colwidthÚgross_colwidthÚseparator_lines       r"   Úadd_separator_lineÚ,_TableBuilderVerboseMixin.add_separator_line†  su   € ØŸ™×*Ñ*ô 8;Ø×-Ñ-¨t×/GÑ/Gô8ôò8Ñ3�Oô ˜˜Ñ.°Ö?ñ8òó
ˆð 	�‰×Ñ˜>Õ*ùós   ¹A8
c                ó  • U R                    Hj  nU R                  R                  [        XR                  5       VVs/ s H  u  p#[        X#5      PM     snn5      nU R                  R                  U5        Ml     g s  snnf rV   )r:  r9  r  rG  r;  r#   rë   rý   )r;   ÚrowrB  ri  Ú	body_lines        r"   Úadd_body_linesÚ(_TableBuilderVerboseMixin.add_body_lines‘  sm   € Ø—<”<ˆCØŸ™×)Ñ)ô 03°3×8PÑ8PÔ/Qôâ/QÑ+˜ô ˜SÖ1Ù/QòóˆIð �K‰K×Ñ˜yÖ)ò  ùós   ½A<c              #  ó@   #   • U R                    H
  nU S3v •  M     g7f)z7Iterator with string representation of non-null counts.z	 non-nullN)rE   )r;   r‹   s     r"   Ú_gen_non_null_countsÚ._TableBuilderVerboseMixin._gen_non_null_counts›  s"   é € à×)Ô)ˆEØ�G˜9Ð%Ô%ò *ùs   ‚c              #  óL   #   • U R                    H  n[        U5      v •  M     g7f)z5Iterator with string representation of column dtypes.N)r<   r   )r;   Údtypes     r"   Ú_gen_dtypesÚ%_TableBuilderVerboseMixin._gen_dtypes   s   é € à—[”[ˆEÜ˜uÓ%Ô%ò !ùó   ‚"$r,   N©r^   zSequence[str]ra   ©r^   zIterator[Sequence[str]]r  ©r^   zIterator[str])rk   rl   rm   rn   ro   r9  rp   rq   r   r>  rC  rK  rF  rX  rV  rW  rd  rk  rp  rs  rw  rr   r,   r$   r"   r8  r8  I  s§   ‡ ñð €GˆSÓØ$Ó$Ø&Ó&ØÓàØó=ó ó ð=ð ó2ó ð2ô
ô=ô
	3ð óLó ðLð óOó ðOô(ô	+ô*ô&÷
&r$   r8  c                  ó~   • \ rS rSrSr      SS j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S
 jrSrg)rÙ   i¦  z2
Dataframe info table builder for verbose output.
c               ó‚   • Xl         X l        [        U R                  5       5      U l        U R                  5       U l        g rV   ©r“   r×   rR  rX  r:  rK  r;  ©r;   r“   r×   s      r"   rx   Ú&_DataFrameTableBuilderVerbose.__init__«  ó3   € ð Œ	Ø&ÔÜ04°T·^±^Ó5EÓ0FˆŒØ26×2OÑ2OÓ2QˆÕ r$   c                ó(  • U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  5         U R                  (       a  U R                  5         ggr  )	rÿ   r  r0  rd  rk  rp  r  rö   r*  r:   s    r"   r  Ú2_DataFrameTableBuilderVerbose._fill_non_empty_info¶  sp   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$×$Ø×&Ñ&Õ(ð %r$   c                ó4   • U R                   (       a  / SQ$ / SQ$ )r=  )ú # ÚColumnúNon-Null Countr   )r†  r‡  r   ©r×   r:   s    r"   r>  Ú%_DataFrameTableBuilderVerbose.headersÂ  s   € ð ××Ú?Ð?Ú)Ð)r$   c                óV   • U R                   R                  SU R                   S35        g )NzData columns (total z
 columns):)rë   rý   r‡   r:   s    r"   r0  Ú6_DataFrameTableBuilderVerbose.add_columns_summary_lineÉ  s#   € Ø�‰×ÑÐ1°$·.±.Ð1AÀÐLÕMr$   c              #  óŽ   #   • [        U R                  5       U R                  5       U R                  5       5       Sh  v•N   g N7fr^  )rG  Ú_gen_line_numbersÚ_gen_columnsrw  r:   s    r"   rW  Ú6_DataFrameTableBuilderVerbose._gen_rows_without_countsÌ  s;   é € äØ×"Ñ"Ó$Ø×ÑÓØ×ÑÓó
÷ 	
ó 	
ùs   ‚;A½A¾Ac              #  ó¬   #   • [        U R                  5       U R                  5       U R                  5       U R	                  5       5       Sh  v•N   g N7fr[  )rG  rŽ  r�  rs  rw  r:   s    r"   rV  Ú3_DataFrameTableBuilderVerbose._gen_rows_with_countsÔ  sG   é € äØ×"Ñ"Ó$Ø×ÑÓØ×%Ñ%Ó'Ø×ÑÓó	
÷ 	
ó 	
ùs   ‚A
AÁAÁAc              #  óV   #   • [        U R                  5       H  u  pSU 3v •  M     g7f)z6Iterator with string representation of column numbers.r+   N)Ú	enumerater‚   )r;   ÚiÚ_s      r"   rŽ  Ú/_DataFrameTableBuilderVerbose._gen_line_numbersÝ  s%   é € ä˜dŸh™hÖ'‰DˆAØ�a�S�'ŒMò (ùs   ‚')c              #  óL   #   • U R                    H  n[        U5      v •  M     g7f)z4Iterator with string representation of column names.N)r‚   r   rA  s     r"   r�  Ú*_DataFrameTableBuilderVerbose._gen_columnsâ  s   é € à—8”8ˆCÜ˜sÓ#Ô#ò ùry  ©r;  r“   r:  r×   N)r“   rt   r×   rÆ   r^   rj   r  rz  r{  r|  )rk   rl   rm   rn   ro   rx   r  rq   r>  r0  rW  rV  rŽ  r�  rr   r,   r$   r"   rÙ   rÙ   ¦  sa   † ñð	Rð ð	Rð ð		Rð
 
ô	Rô
)ð ó*ó ð*ôNô
ô
ô÷
$r$   rÙ   c                  ó^   • \ rS rSrSrS
S jrSS jr\SS j5       rSS jr	\
SS j5       rSrg	)rè   iè  zo
Abstract builder for series info table.

Parameters
----------
info : SeriesInfo.
    Instance of SeriesInfo.
c               ó   • Xl         g rV   rØ   r  s     r"   rx   Ú_SeriesTableBuilder.__init__ò  s   € Ø $�	r$   c                óH   • / U l         U R                  5         U R                   $ rV   )rë   r  r:   s    r"   r±   Ú_SeriesTableBuilder.get_linesõ  s   € ØˆŒØ×!Ñ!Ô#Ø�{‰{Ðr$   c                ó.   • U R                   R                  $ )zSeries.rï   r:   s    r"   r7   Ú_SeriesTableBuilder.dataú  r"  r$   c                óT   • U R                   R                  SU R                   35        gr(  r)  r:   s    r"   r*  Ú)_SeriesTableBuilder.add_memory_usage_lineÿ  r,  r$   c                ó   • g©z<Add lines to the info table, pertaining to non-empty series.Nr,   r:   s    r"   r  Ú(_SeriesTableBuilder._fill_non_empty_info  r>   r$   r-  N)r“   r�   r^   rj   r  )r^   r   r  )rk   rl   rm   rn   ro   rx   r±   rq   r7   r*  r   r  rr   r,   r$   r"   rè   rè   è  sA   † ñô%ôð
 óó ðôHð óKó óKr$   rè   c                  ó"   • \ rS rSrSrSS jrSrg)rä   i  z3
Series info table builder for non-verbose output.
c                ó¨   • U R                  5         U R                  5         U R                  5         U R                  (       a  U R	                  5         ggr¥  )rÿ   r  r  rö   r*  r:   s    r"   r  Ú2_SeriesTableBuilderNonVerbose._fill_non_empty_info  s@   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×$×$Ø×&Ñ&Õ(ð %r$   r,   Nr  )rk   rl   rm   rn   ro   r  rr   r,   r$   r"   rä   rä     s   † ñ÷)r$   rä   c                  ój   • \ rS rSrSr      SS jrSS jrSS jr\SS j5       r	SS jr
SS jrS	rg
)rã   i  z/
Series info table builder for verbose output.
c               ó‚   • Xl         X l        [        U R                  5       5      U l        U R                  5       U l        g rV   r  r€  s      r"   rx   Ú#_SeriesTableBuilderVerbose.__init__  r‚  r$   c                ó(  • U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  5         U R                  (       a  U R                  5         ggr¥  )	rÿ   r  Úadd_series_name_linerd  rk  rp  r  rö   r*  r:   s    r"   r  Ú/_SeriesTableBuilderVerbose._fill_non_empty_info&  sp   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$×$Ø×&Ñ&Õ(ð %r$   c                óh   • U R                   R                  SU R                  R                   35        g )NzSeries name: )rë   rý   r7   r5  r:   s    r"   r®  Ú/_SeriesTableBuilderVerbose.add_series_name_line2  s$   € Ø�‰×Ñ˜]¨4¯9©9¯>©>Ð*:Ð;Õ<r$   c                ó2   • U R                   (       a  SS/$ S/$ )r=  rˆ  r   r‰  r:   s    r"   r>  Ú"_SeriesTableBuilderVerbose.headers5  s    € ð ××Ø$ gÐ.Ð.ØˆyÐr$   c              #  ó@   #   • U R                  5        Sh  v•N   g N7fr^  )rw  r:   s    r"   rW  Ú3_SeriesTableBuilderVerbose._gen_rows_without_counts<  s   é € à×#Ñ#Ó%×%Ó%ùs   ‚–—c              #  óp   #   • [        U R                  5       U R                  5       5       Sh  v•N   g N7fr[  )rG  rs  rw  r:   s    r"   rV  Ú0_SeriesTableBuilderVerbose._gen_rows_with_counts@  s/   é € äØ×%Ñ%Ó'Ø×ÑÓó
÷ 	
ó 	
ùs   ‚,6®4¯6rš  N)r“   r�   r×   rÆ   r^   rj   r  rz  r{  )rk   rl   rm   rn   ro   rx   r  r®  rq   r>  rW  rV  rr   r,   r$   r"   rã   rã     sV   † ñð	Rð ð	Rð ð		Rð
 
ô	Rô
)ô=ð óó ðô&÷
r$   rã   c                ór   • U R                   R                  5       R                  S 5      R                  5       $ )zC
Create mapping between datatypes and their number of occurrences.
c                ó   • U R                   $ rV   r4  )r/   s    r"   Ú<lambda>Ú-_get_dataframe_dtype_counts.<locals>.<lambda>M  s   € °a·f²fr$   )r<   Úvalue_countsÚgroupbyr�   )Údfs    r"   r{   r{   H  s,   € ð
 �9‰9×!Ñ!Ó#×+Ñ+Ñ,<Ó=×AÑAÓCÐCr$   )r    zstr | Dtyper!   rd   r^   r   )r-   Úfloatr.   r   r^   r   rV   )r2   rš   r^   r8   )r¾  r   r^   r`   )8Ú
__future__r   Úabcr   r   r²   Útextwrapr   Útypingr   Úpandas._configr	   Úpandas.io.formatsr
   r´   Úpandas.io.formats.printingr   Úcollections.abcr   r   r   r   Úpandas._typingr   r   Úpandasr   r   r   Úframe_max_cols_subr   Úframe_examples_subÚframe_see_also_subÚframe_sub_kwargsÚseries_examples_subÚseries_see_also_subÚseries_sub_kwargsÚINFO_DOCSTRINGr#   r0   r3   r5   rt   r�   r®   r”   r¢   r»   rÞ   rÚ   r8  rÙ   rè   rä   rã   r{   r,   r$   r"   Ú<module>rÒ     s÷  ðÝ "÷ó Ý Ý  å %å +Ý 3æ÷ó ÷÷
ñ ñ ð@óÐ ñ ð?ó€ñ ðQóSÐ ñl ðBóÐ ð ØØ&Ø&Ø&Ø&ØñÐ ñ ð9ó;Ð ñ| ð4óÐ ð ØØØ&Ø'Ø'Ø6ñÐ ñ ð.ó0€ôf'ô4,ð@ '+ðØ#ðàõô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>Ð'=ô >ô$Z&Ð 5ô Z&ôz?$Ð$:Ð<Uô ?$ôDKÐ/ô Kô@)Ð$7ô )ô/
Ð!4Ð6Oô /
õdDr$   