+
    NV-jàj  ã                  ó|  € ^ RI Ht ^ RIHtHt ^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ]	'       d   ^ R	IHtHtHtHt ^ R
IHtHt ^ RIHtHtHt ]! R4      t]! R4      t]! R4      t]! R4      t RRRRR] R]R]R]RR/t!R R lt"R R lt#R>R R llt$ ! R  R!]4      t% ! R" R#]%4      t& ! R$ R%]%4      t' ! R& R'4      t( ! R( R)](4      t) ! R* R+](4      t* ! R, R-]4      t+ ! R. R/]+4      t, ! R0 R1],4      t- ! R2 R3]+4      t. ! R4 R5],].4      t/ ! R6 R7]+4      t0 ! R8 R9]04      t1 ! R: R;]0].4      t2R< R= lt3R# )?é    )Úannotations)ÚABCÚabstractmethodN)Údedent)ÚTYPE_CHECKING©Ú
get_option)Úformat)Úpprint_thing)ÚIterableÚIteratorÚMappingÚSequence)ÚDtypeÚWriteBuffer)Ú	DataFrameÚIndexÚSeriesaR      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']
    >>> s = pd.Series(text_values, index=int_values)
    >>> s.info()
    <class 'pandas.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.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.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.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.z_    max_cols : int, optional
        Unused, exists only for compatibility with DataFrame.info.Úklassr   Útype_subÚ Úmax_cols_subÚshow_counts_subÚexamples_subÚsee_also_subÚversion_added_subz
.. versionadded:: 1.4.0
c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úszstr | DtypeÚspaceÚintÚreturnÚstr© )r
   s   "Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/io/formats/info.pyÚ__annotate__r&   ‚   s!   € ÷ 'ñ '�ð ' Cð '¨Cñ 'ó    c                ó<   € \        V 4      RV P                  V4      # )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)r#   Úljust)r   r    s   &&r%   Ú_put_strr*   ‚   s   € ô. ˆq‹6�&�5ˆ>×Ñ Ó&Ð&r'   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚnumÚfloatÚsize_qualifierr#   r"   r$   )r
   s   "r%   r&   r&   œ   s!   € ÷ ,ñ ,�Uð ,¨Cð ,°Cñ ,r'   c                ó\   € R F  pV R8  d   V R V RV 2u # V R,          p K!  	  V R V R2# )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'
g      �@z3.1fÚ z PB)ÚbytesÚKBÚMBÚGBÚTBr$   )r,   r.   Úxs   && r%   Ú_sizeof_fmtr7   œ   sL   € ó0 /ˆØ�Œ<Ø˜$�Z Ð/¨q°°Ð4Ò4Øˆv�Šñ /ð �$ˆZ˜Ð' sÐ+Ð+r'   c               ó    € V ^8„  d   QhRRRR/# )r   Úmemory_usageúbool | str | Noner"   ú
bool | strr$   )r
   s   "r%   r&   r&   »   s   € ÷ ñ Ø#ðàñr'   c                ó$   € V f   \        R4      p V # )z5Get memory usage based on inputs and display options.zdisplay.memory_usager   )r9   s   &r%   Ú_initialize_memory_usager=   »   s   € ð ÒÜ!Ð"8Ó9ˆØÐr'   c                  óò   € ] tR t^Ät$ RtR]R&   R]R&   ]]R R l4       4       t]]R R	 l4       4       t	]]R
 R l4       4       t
]]R R l4       4       t]R R l4       t]R R l4       t]R R l4       tRtR# )Ú	_BaseInfoaB  
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Údatar;   r9   c               ó   € V ^8„  d   QhRR/# ©r   r"   zIterable[Dtype]r$   )r
   s   "r%   r&   Ú_BaseInfo.__annotate__×   s   € ÷ ñ ˜ñ r'   c                ó   € R# )zq
Dtypes.

Returns
-------
dtypes : sequence
    Dtype of each of the DataFrame's columns (or one series column).
Nr$   ©Úselfs   &r%   ÚdtypesÚ_BaseInfo.dtypesÕ   ó   ‚ r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   úMapping[str, int]r$   )r
   s   "r%   r&   rD   ã   s   € ÷ 0ñ 0Ð/ñ 0r'   c                ó   € R# )ú!Mapping dtype - number of counts.Nr$   rF   s   &r%   Údtype_countsÚ_BaseInfo.dtype_countsá   rJ   r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   zlist[int] | Seriesr$   )r
   s   "r%   r&   rD   è   s   € ÷ Qñ QÐ!3ñ Qr'   c                ó   € R# )úBSequence of non-null counts for all columns or column (if series).Nr$   rF   s   &r%   Únon_null_countsÚ_BaseInfo.non_null_countsæ   rJ   r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   r!   r$   )r
   s   "r%   r&   rD   í   s   € ÷ ñ  Cñ r'   c                ó   € R# )zl
Memory usage in bytes.

Returns
-------
memory_usage_bytes : int
    Object's total memory usage in bytes.
Nr$   rF   s   &r%   Úmemory_usage_bytesÚ_BaseInfo.memory_usage_bytesë   rJ   r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   r#   r$   )r
   s   "r%   r&   rD   ø   s   € ÷ Pñ P Sñ Pr'   c                óH   € \        V P                  V P                  4       R2# )z0Memory usage in a form of human readable string.Ú
)r7   r[   r.   rF   s   &r%   Úmemory_usage_stringÚ_BaseInfo.memory_usage_string÷   s%   € ô ˜d×5Ñ5°t×7JÑ7JÓKÐLÈBÐOÐOr'   c               ó   € V ^8„  d   QhRR/# r^   r$   )r
   s   "r%   r&   rD   ý   s   € ÷ ñ  ñ r'   c                	óÂ   € R pV P                   '       dK   V P                   R8w  d:   RV P                  9   g'   V P                  P                  P                  '       d   RpV# )r   ÚdeepÚobjectÚ+)r9   rP   rA   ÚindexÚ_is_memory_usage_qualified)rG   r.   s   & r%   r.   Ú_BaseInfo.size_qualifierü   sP   € àˆØ××ÐØ× Ñ  FÔ*ð
  × 1Ñ 1Ô1Ø—y‘y—‘×A×AÐAà%(�NØÐr'   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# ©
r   ÚbufúWriteBuffer[str] | NoneÚmax_colsú
int | NoneÚverboseúbool | NoneÚshow_countsr"   ÚNoner$   )r
   s   "r%   r&   rD     s>   € ÷ ñ ð %ðð ð	ð
 ðð !ðð 
ñr'   c               	ó   € R # ©Nr$   )rG   rm   ro   rq   rs   s   &$$$$r%   ÚrenderÚ_BaseInfo.render  s   € ñ 	r'   r$   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Úpropertyr   rH   rP   rV   r[   ra   r.   rw   Ú__static_attributes__r$   r'   r%   r?   r?   Ä   sÃ   ‡ ñð ÓØÓàØôó ó ðð Øô0ó ó ð0ð ØôQó ó ðQð Øôó ó ðð ôPó ðPð ôó ðð ôó ôr'   r?   c                  óº   € ] tR tRtRtRR R llt]R R l4       t]R R	 l4       t]R
 R l4       t	]R R l4       t
]R R l4       t]R R l4       tR R ltRtR# )ÚDataFrameInfoi  z(
Class storing dataframe-specific info.
Nc               ó$   € V ^8„  d   QhRRRRRR/# )r   rA   r   r9   r:   r"   rt   r$   )r
   s   "r%   r&   ÚDataFrameInfo.__annotate__  s-   € ÷ Cñ CàðCð (ðCð 
ñ	Cr'   c                	ó2   € Wn         \        V4      V n        R # rv   ©rA   r=   r9   ©rG   rA   r9   s   &&&r%   Ú__init__ÚDataFrameInfo.__init__  s   € ð
  $Œ	Ü4°\ÓBˆÖr'   c               ó   € V ^8„  d   QhRR/# rL   r$   )r
   s   "r%   r&   r„   %  s   € ÷ 6ñ 6Ð/ñ 6r'   c                	ó,   € \        V P                  4      # rv   )Ú_get_dataframe_dtype_countsrA   rF   s   &r%   rP   ÚDataFrameInfo.dtype_counts$  s   € ä*¨4¯9©9Ó5Ð5r'   c               ó   € V ^8„  d   QhRR/# rC   r$   )r
   s   "r%   r&   r„   )  s   € ÷ 	 ñ 	 ˜ñ 	 r'   c                ó.   € V P                   P                  # )zO
Dtypes.

Returns
-------
dtypes
    Dtype of each of the DataFrame's columns.
©rA   rH   rF   s   &r%   rH   ÚDataFrameInfo.dtypes(  s   € ð �y‰y×ÑÐr'   c               ó   € V ^8„  d   QhRR/# ©r   r"   r   r$   )r
   s   "r%   r&   r„   5  s   € ÷ 	!ñ 	!�Uñ 	!r'   c                ó.   € V P                   P                  # )zJ
Column names.

Returns
-------
ids : Index
    DataFrame's column names.
)rA   ÚcolumnsrF   s   &r%   ÚidsÚDataFrameInfo.ids4  s   € ð �y‰y× Ñ Ð r'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   r„   A  s   € ÷ ñ ˜3ñ r'   c                ó,   € \        V P                  4      # ©z#Number of columns to be summarized.)Úlenr–   rF   s   &r%   Ú	col_countÚDataFrameInfo.col_count@  s   € ô �4—8‘8‹}Ðr'   c               ó   € V ^8„  d   QhRR/# ©r   r"   r   r$   )r
   s   "r%   r&   r„   F  s   € ÷ !ñ ! ñ !r'   c                ó6   € V P                   P                  4       # )rU   ©rA   ÚcountrF   s   &r%   rV   ÚDataFrameInfo.non_null_countsE  s   € ð �y‰y�‰Ó Ð r'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   r„   K  s   € ÷ Cñ C Cñ Cr'   c                	óv   € V P                   R 8H  pV P                  P                  RVR7      P                  4       # )re   T©rh   re   )r9   rA   Úsum©rG   re   s   & r%   r[   Ú DataFrameInfo.memory_usage_bytesJ  s5   € à× Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ó<×@Ñ@ÓBÐBr'   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# rl   r$   )r
   s   "r%   r&   r„   O  s>   € ÷ ñ ð %ðð ð	ð
 ðð !ðð 
ñr'   c               	óF   € \        V VVVR 7      pVP                  V4       R# ))Úinforo   rq   rs   N)Ú_DataFrameInfoPrinterÚ	to_buffer©rG   rm   ro   rq   rs   Úprinters   &$$$$ r%   rw   ÚDataFrameInfo.renderO  s*   € ô (ØØØØ#ô	
ˆð 	×Ñ˜#Ör'   ©rA   r9   rv   )ry   rz   r{   r|   r}   rˆ   r   rP   rH   r–   rœ   rV   r[   rw   r€   r$   r'   r%   r‚   r‚     s‘   † ñ÷Cð ô6ó ð6ð ô	 ó ð	 ð ô	!ó ð	!ð ôó ðð ô!ó ð!ð ôCó ðC÷ñ r'   r‚   c                  ó¢   € ] tR tRtRtRR R lltRRRRRRR	R/R
 R llt]R R l4       t]R R l4       t	]R R l4       t
]R R l4       tRtR# )Ú
SeriesInfoi`  z%
Class storing series-specific info.
Nc               ó$   € V ^8„  d   QhRRRRRR/# )r   rA   r   r9   r:   r"   rt   r$   )r
   s   "r%   r&   ÚSeriesInfo.__annotate__e  s-   € ÷ Cñ CàðCð (ðCð 
ñ	Cr'   c                	ó2   € Wn         \        V4      V n        R # rv   r†   r‡   s   &&&r%   rˆ   ÚSeriesInfo.__init__e  s   € ð
 !Œ	Ü4°\ÓBˆÖr'   rm   ro   rq   rs   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# rl   r$   )r
   s   "r%   r&   r¶   m  s>   € ÷ ñ ð %ðð ð	ð
 ðð !ðð 
ñr'   c               	ób   € Ve   \        R4      h\        V VVR7      pVP                  V4       R # )NzIArgument `max_cols` can only be passed in DataFrame.info, not Series.info)r¬   rq   rs   )Ú
ValueErrorÚ_SeriesInfoPrinterr®   r¯   s   &$$$$ r%   rw   ÚSeriesInfo.renderm  sA   € ð ÒÜð5óð ô %ØØØ#ô
ˆð
 	×Ñ˜#Ör'   c               ó   € V ^8„  d   QhRR/# )r   r"   z	list[int]r$   )r
   s   "r%   r&   r¶   ‚  s   € ÷ #ñ # ñ #r'   c                	ó8   € V P                   P                  4       .# rv   r¡   rF   s   &r%   rV   ÚSeriesInfo.non_null_counts�  s   € à—	‘	—‘Ó!Ð"Ð"r'   c               ó   € V ^8„  d   QhRR/# rC   r$   )r
   s   "r%   r&   r¶   †  s   € ÷ "ñ "˜ñ "r'   c                	ó0   € V P                   P                  .# rv   r�   rF   s   &r%   rH   ÚSeriesInfo.dtypes…  s   € à—	‘	× Ñ Ð!Ð!r'   c               ó   € V ^8„  d   QhRR/# rL   r$   )r
   s   "r%   r&   r¶   Š  s   € ÷ Añ AÐ/ñ Ar'   c                	óD   € ^ RI Hp \        V! V P                  4      4      # )r   )r   )Úpandas.core.framer   rŒ   rA   )rG   r   s   & r%   rP   ÚSeriesInfo.dtype_counts‰  s   € å/ä*©9°T·Y±YÓ+?Ó@Ð@r'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   r¶   �  s   € ÷ 	=ñ 	= Cñ 	=r'   c                óZ   € V P                   R8H  pV P                  P                  RVR7      # )zkMemory usage in bytes.

Returns
-------
memory_usage_bytes : int
    Object's total memory usage in bytes.
re   Tr¦   )r9   rA   r¨   s   & r%   r[   ÚSeriesInfo.memory_usage_bytes�  s.   € ð × Ñ  FÑ*ˆØ�y‰y×%Ñ%¨D°tÐ%Ó<Ð<r'   r²   rv   )ry   rz   r{   r|   r}   rˆ   rw   r   rV   rH   rP   r[   r€   r$   r'   r%   r´   r´   `  sŒ   † ñ÷Cðð (,ðð  $ð	ð
  $ðð $(÷ð( ô#ó ð#ð ô"ó ð"ð ôAó ðAð
 ô	=ó ô	=r'   r´   c                  ó@   € ] tR tRtRtR	R R llt]R R l4       tRtR# )
Ú_InfoPrinterAbstractiœ  z.
Class for printing dataframe or series info.
Nc               ó    € V ^8„  d   QhRRRR/# )r   rm   rn   r"   rt   r$   )r
   s   "r%   r&   Ú!_InfoPrinterAbstract.__annotate__¡  s   € ÷ )ñ )Ð4ð )Àñ )r'   c                óš   € V P                  4       pVP                  4       pVf   \        P                  p\        P
                  ! W4       R# )z Save dataframe info into buffer.N)Ú_create_table_builderÚ	get_linesÚsysÚstdoutÚfmtÚbuffer_put_lines)rG   rm   Útable_builderÚliness   &&  r%   r®   Ú_InfoPrinterAbstract.to_buffer¡  s:   € à×2Ñ2Ó4ˆØ×'Ñ'Ó)ˆØŠ;Ü—*‘*ˆCÜ×Ò˜SÖ(r'   c               ó   € V ^8„  d   QhRR/# )r   r"   Ú_TableBuilderAbstractr$   )r
   s   "r%   r&   rÎ   ª  s   € ÷ 0ñ 0Ð'<ñ 0r'   c                ó   € R# )z!Create instance of table builder.Nr$   rF   s   &r%   rÐ   Ú*_InfoPrinterAbstract._create_table_builder©  rJ   r'   r$   rv   )	ry   rz   r{   r|   r}   r®   r   rÐ   r€   r$   r'   r%   rÌ   rÌ   œ  s    † ñ÷)ð ô0ó ô0r'   rÌ   c                  ó¦   € ] tR tRtRtRR R llt]R R l4       t]R R	 l4       t]R
 R l4       t	]R R l4       t
R R ltR R ltR R ltRtR# )r­   i®  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          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r¬   r‚   ro   rp   rq   rr   rs   r"   rt   r$   )r
   s   "r%   r&   Ú"_DataFrameInfoPrinter.__annotate__¾  sC   € ÷ Eñ EàðEð ðEð ð	Eð
 !ðEð 
ñEr'   c                	ó˜   € Wn         VP                  V n        W0n        V P                  V4      V n        V P                  V4      V n        R # rv   )r¬   rA   rq   Ú_initialize_max_colsro   Ú_initialize_show_countsrs   )rG   r¬   ro   rq   rs   s   &&&&&r%   rˆ   Ú_DataFrameInfoPrinter.__init__¾  s>   € ð Œ	Ø—I‘IˆŒ	ØŒØ×1Ñ1°(Ó;ˆŒØ×7Ñ7¸ÓDˆÖr'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   rß   Ì  s   € ÷ 3ñ 3˜#ñ 3r'   c                ó   € \        R4      # )z"Maximum info rows to be displayed.zdisplay.max_info_rowsr   rF   s   &r%   Úmax_rowsÚ_DataFrameInfoPrinter.max_rowsË  s   € ô Ð1Ó2Ð2r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   Úboolr$   )r
   s   "r%   r&   rß   Ñ  ó   € ÷ 4ñ 4 4ñ 4r'   c                óF   € \        V P                  V P                  8„  4      # )zDCheck if number of columns to be summarized does not exceed maximum.)rê   rœ   ro   rF   s   &r%   Úexceeds_info_colsÚ'_DataFrameInfoPrinter.exceeds_info_colsÐ  s   € ô �D—N‘N T§]¡]Ñ2Ó3Ð3r'   c               ó   € V ^8„  d   QhRR/# ré   r$   )r
   s   "r%   r&   rß   Ö  rë   r'   c                óX   € \        \        V P                  4      V P                  8„  4      # )zACheck if number of rows to be summarized does not exceed maximum.)rê   r›   rA   ræ   rF   s   &r%   Úexceeds_info_rowsÚ'_DataFrameInfoPrinter.exceeds_info_rowsÕ  s    € ô ”C˜Ÿ	™	“N T§]¡]Ñ2Ó3Ð3r'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   rß   Û  ó   € ÷ #ñ #˜3ñ #r'   c                ó.   € V P                   P                  # rš   ©r¬   rœ   rF   s   &r%   rœ   Ú_DataFrameInfoPrinter.col_countÚ  ó   € ð �y‰y×"Ñ"Ð"r'   c               ó    € V ^8„  d   QhRRRR/# )r   ro   rp   r"   r!   r$   )r
   s   "r%   r&   rß   ß  s   € ÷ ñ ¨Zð ¸Cñ r'   c                	ó$   € Vf   \        R4      # V# )Nzdisplay.max_info_columnsr   )rG   ro   s   &&r%   rá   Ú*_DataFrameInfoPrinter._initialize_max_colsß  s   € ØÒÜÐ8Ó9Ð9Øˆr'   c               ó    € V ^8„  d   QhRRRR/# ©r   rs   rr   r"   rê   r$   )r
   s   "r%   r&   rß   ä  ó   € ÷ ñ °;ð À4ñ r'   c                	ót   € Vf4   \        V P                  '       * ;'       d    V P                  '       * 4      # V# rv   )rê   rí   rñ   ©rG   rs   s   &&r%   râ   Ú-_DataFrameInfoPrinter._initialize_show_countsä  s3   € ØÒÜ˜D×2Ñ2Ô2×QÐQ¸4×;QÑ;QÔ7QÓRÐRàÐr'   c               ó   € V ^8„  d   QhRR/# )r   r"   Ú_DataFrameTableBuilderr$   )r
   s   "r%   r&   rß   ê  s   € ÷ ñ Ð'=ñ r'   c                óF  € V P                   '       d"   \        V P                  V P                  R7      # V P                   RJ d   \	        V P                  R7      # V P
                  '       d   \	        V P                  R7      # \        V P                  V P                  R7      # )zK
Create instance of table builder based on verbosity and display settings.
©r¬   Úwith_countsF©r¬   )rq   Ú_DataFrameTableBuilderVerboser¬   rs   Ú _DataFrameTableBuilderNonVerboserí   rF   s   &r%   rÐ   Ú+_DataFrameInfoPrinter._create_table_builderê  s   € ð �<�<ˆ<Ü0Ø—Y‘YØ ×,Ñ,ôð ð �\‰\˜UÓ"Ü3¸¿¹ÔCÐCØ×#×#Ð#Ü3¸¿¹ÔCÐCä0Ø—Y‘YØ ×,Ñ,ôð r'   )rA   r¬   ro   rs   rq   )NNN)ry   rz   r{   r|   r}   rˆ   r   ræ   rí   rñ   rœ   rá   râ   rÐ   r€   r$   r'   r%   r­   r­   ®  sq   † ñ÷Eð ô3ó ð3ð ô4ó ð4ð ô4ó ð4ð ô#ó ð#õõ
÷ñ r'   r­   c                  óB   € ] tR tRtRtRR R lltR R ltR R	 ltR
tR# )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               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r¬   r´   rq   rr   rs   r"   rt   r$   )r
   s   "r%   r&   Ú_SeriesInfoPrinter.__annotate__  s8   € ÷ 	Eñ 	Eàð	Eð ð	Eð !ð		Eð
 
ñ	Er'   c                	ól   € Wn         VP                  V n        W n        V P                  V4      V n        R # rv   )r¬   rA   rq   râ   rs   )rG   r¬   rq   rs   s   &&&&r%   rˆ   Ú_SeriesInfoPrinter.__init__  s,   € ð Œ	Ø—I‘IˆŒ	ØŒØ×7Ñ7¸ÓDˆÖr'   c               ó   € V ^8„  d   QhRR/# )r   r"   Ú_SeriesTableBuilderr$   )r
   s   "r%   r&   r    s   € ÷ 
Añ 
AÐ':ñ 
Ar'   c                ó°   € V P                   '       g   V P                   f"   \        V P                  V P                  R7      # \	        V P                  R7      # )z6
Create instance of table builder based on verbosity.
r  r  )rq   Ú_SeriesTableBuilderVerboser¬   rs   Ú_SeriesTableBuilderNonVerboserF   s   &r%   rÐ   Ú(_SeriesInfoPrinter._create_table_builder  sD   € ð �<�<ˆ<˜4Ÿ<™<Ò/Ü-Ø—Y‘YØ ×,Ñ,ôð ô
 1°d·i±iÔ@Ð@r'   c               ó    € V ^8„  d   QhRRRR/# rý   r$   )r
   s   "r%   r&   r  "  rþ   r'   c                	ó   € Vf   R# V# )NTr$   r   s   &&r%   râ   Ú*_SeriesInfoPrinter._initialize_show_counts"  s   € ØÒÙàÐr'   )rA   r¬   rs   rq   )NN)	ry   rz   r{   r|   r}   rˆ   rÐ   râ   r€   r$   r'   r%   r¼   r¼   þ  s   † ñ
÷	Eõ
A÷ñ r'   r¼   c                  óî   € ] tR tRt$ RtR]R&   R]R&   ]R R l4       t]R	 R
 l4       t	]R R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       tR R ltR R ltR R ltRtR# )rÚ   i)  z"
Abstract builder for info table.
ú	list[str]Ú_linesr?   r¬   c               ó   € V ^8„  d   QhRR/# ©r   r"   r  r$   )r
   s   "r%   r&   Ú"_TableBuilderAbstract.__annotate__2  s   € ÷ <ñ <˜9ñ <r'   c                ó   € R# )z-Product in a form of list of lines (strings).Nr$   rF   s   &r%   rÑ   Ú_TableBuilderAbstract.get_lines1  rJ   r'   c               ó   € V ^8„  d   QhRR/# )r   r"   r@   r$   )r
   s   "r%   r&   r  6  s   € ÷ ñ Ð(ñ r'   c                	ó.   € V P                   P                  # rv   ©r¬   rA   rF   s   &r%   rA   Ú_TableBuilderAbstract.data5  s   € à�y‰y�~‰~Ðr'   c               ó   € V ^8„  d   QhRR/# rC   r$   )r
   s   "r%   r&   r  :  s   € ÷  ñ  ˜ñ  r'   c                ó.   € V P                   P                  # )z*Dtypes of each of the DataFrame's columns.)r¬   rH   rF   s   &r%   rH   Ú_TableBuilderAbstract.dtypes9  s   € ð �y‰y×ÑÐr'   c               ó   € V ^8„  d   QhRR/# rL   r$   )r
   s   "r%   r&   r  ?  s   € ÷ &ñ &Ð/ñ &r'   c                ó.   € V P                   P                  # )rO   )r¬   rP   rF   s   &r%   rP   Ú"_TableBuilderAbstract.dtype_counts>  s   € ð �y‰y×%Ñ%Ð%r'   c               ó   € V ^8„  d   QhRR/# ré   r$   )r
   s   "r%   r&   r  D  s   € ÷ ,ñ , dñ ,r'   c                ó@   € \        V P                  P                  4      # )z Whether to display memory usage.)rê   r¬   r9   rF   s   &r%   Údisplay_memory_usageÚ*_TableBuilderAbstract.display_memory_usageC  s   € ô �D—I‘I×*Ñ*Ó+Ð+r'   c               ó   € V ^8„  d   QhRR/# r^   r$   )r
   s   "r%   r&   r  I  s   € ÷ -ñ - Sñ -r'   c                ó.   € V P                   P                  # )z/Memory usage string with proper size qualifier.)r¬   ra   rF   s   &r%   ra   Ú)_TableBuilderAbstract.memory_usage_stringH  s   € ð �y‰y×,Ñ,Ð,r'   c               ó   € V ^8„  d   QhRR/# rS   r$   )r
   s   "r%   r&   r  N  s   € ÷ )ñ )Ð!3ñ )r'   c                	ó.   € V P                   P                  # rv   )r¬   rV   rF   s   &r%   rV   Ú%_TableBuilderAbstract.non_null_countsM  s   € à�y‰y×(Ñ(Ð(r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   rt   r$   )r
   s   "r%   r&   r  Q  s   € ÷ 1ñ 1 dñ 1r'   c                ót   € V P                   P                  \        \        V P                  4      4      4       R# )z>Add line with string representation of dataframe to the table.N)r  Úappendr#   ÚtyperA   rF   s   &r%   Úadd_object_type_lineÚ*_TableBuilderAbstract.add_object_type_lineQ  s!   € à�‰×Ñœ3œt D§I¡I›Ó/Ö0r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  U  s   € ÷ 7ñ 7 dñ 7r'   c                ó€   € V P                   P                  V P                  P                  P	                  4       4       R# )z,Add line with range of indices to the table.N)r  r8  rA   rh   Ú_summaryrF   s   &r%   Úadd_index_range_lineÚ*_TableBuilderAbstract.add_index_range_lineU  s%   € à�‰×Ñ˜4Ÿ9™9Ÿ?™?×3Ñ3Ó5Ö6r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  Y  s   € ÷ Eñ E ñ Er'   c                óæ   € \        V P                  P                  4       4       UUu. uF  w  rV RVR R2NK  	  pppV P                  P	                  RRP                  V4       24       R# u uppi )z2Add summary line with dtypes present in dataframe.Ú(ÚdÚ)zdtypes: z, N)ÚsortedrP   Úitemsr  r8  Újoin)rG   ÚkeyÚvalÚcollected_dtypess   &   r%   Úadd_dtypes_lineÚ%_TableBuilderAbstract.add_dtypes_lineY  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)ry   rz   r{   r|   r}   r~   r   rÑ   r   rA   rH   rP   r-  ra   rV   r:  r?  rL  r€   r$   r'   r%   rÚ   rÚ   )  s´   ‡ ñð ÓØ
ƒOàô<ó ð<ð ôó ðð ô ó ð ð ô&ó ð&ð ô,ó ð,ð ô-ó ð-ð ô)ó ð)õ1õ7÷Eñ Er'   rÚ   c                  ó¢   € ] tR tRtRtR R ltR R ltR R lt]R	 R
 l4       t	]
R R l4       t]
R R l4       t]
R R l4       tR R ltRtR# )r  ia  zx
Abstract builder for dataframe info table.

Parameters
----------
info : DataFrameInfo.
    Instance of DataFrameInfo.
c               ó    € V ^8„  d   QhRRRR/# )r   r¬   r‚   r"   rt   r$   )r
   s   "r%   r&   Ú#_DataFrameTableBuilder.__annotate__k  s   € ÷ (ñ ( ð (°$ñ (r'   c               	ó   € Wn         R # rv   r  ©rG   r¬   s   &$r%   rˆ   Ú_DataFrameTableBuilder.__init__k  s   € Ø#'Ž	r'   c               ó   € V ^8„  d   QhRR/# r  r$   )r
   s   "r%   r&   rP  n  s   € ÷ ñ ˜9ñ r'   c                	ó¢   € . V n         V P                  ^ 8X  d   V P                  4        V P                   # V P                  4        V P                   # )r   )r  rœ   Ú_fill_empty_infoÚ_fill_non_empty_inforF   s   &r%   rÑ   Ú _DataFrameTableBuilder.get_linesn  sE   € ØˆŒØ�>‰>˜QÔØ×!Ñ!Ô#ð �{‰{Ðð ×%Ñ%Ô'Ø�{‰{Ðr'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   rP  v  s   € ÷ Bñ B $ñ Br'   c                ó¾   € V P                  4        V P                  4        V P                  P                  R\	        V P
                  4      P                   R24       R# )z;Add lines to the info table, pertaining to empty dataframe.zEmpty r`   N)r:  r?  r  r8  r9  rA   ry   rF   s   &r%   rV  Ú'_DataFrameTableBuilder._fill_empty_infov  sD   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø�‰×Ñ˜V¤D¨¯©£O×$<Ñ$<Ð#=¸RÐ@ÖAr'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   rP  }  s   € ÷ Nñ N dñ Nr'   c                ó   € R# ©z?Add lines to the info table, pertaining to non-empty dataframe.Nr$   rF   s   &r%   rW  Ú+_DataFrameTableBuilder._fill_non_empty_info|  rJ   r'   c               ó   € V ^8„  d   QhRR/# )r   r"   r   r$   )r
   s   "r%   r&   rP  �  s   € ÷ ñ �iñ r'   c                ó.   € V P                   P                  # )z
DataFrame.r#  rF   s   &r%   rA   Ú_DataFrameTableBuilder.data€  ó   € ð �y‰y�~‰~Ðr'   c               ó   € V ^8„  d   QhRR/# r“   r$   )r
   s   "r%   r&   rP  †  s   € ÷ ñ �Uñ r'   c                ó.   € V P                   P                  # )zDataframe columns.)r¬   r–   rF   s   &r%   r–   Ú_DataFrameTableBuilder.ids…  s   € ð �y‰y�}‰}Ðr'   c               ó   € V ^8„  d   QhRR/# rY   r$   )r
   s   "r%   r&   rP  ‹  rô   r'   c                ó.   € V P                   P                  # )z-Number of dataframe columns to be summarized.rö   rF   s   &r%   rœ   Ú _DataFrameTableBuilder.col_countŠ  rø   r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   rP  �  ó   € ÷ Hñ H tñ Hr'   c                óV   € V P                   P                  RV P                   24       R# ©z!Add line containing memory usage.zmemory usage: N©r  r8  ra   rF   s   &r%   Úadd_memory_usage_lineÚ,_DataFrameTableBuilder.add_memory_usage_line�  ó"   € à�‰×Ñ˜^¨D×,DÑ,DÐ+EÐFÖGr'   ©r  r¬   N)ry   rz   r{   r|   r}   rˆ   rÑ   rV  r   rW  r   rA   r–   rœ   ro  r€   r$   r'   r%   r  r  a  su   † ñõ(õõBð ôNó ðNð ôó ðð ôó ðð ô#ó ð#÷Hñ Hr'   r  c                  ó2   € ] tR tRtRtR R ltR R ltRtR# )	r	  i”  z6
Dataframe info table builder for non-verbose output.
c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   Ú-_DataFrameTableBuilderNonVerbose.__annotate__™  s   € ÷ )ñ ) dñ )r'   c                óÎ   € V P                  4        V P                  4        V P                  4        V P                  4        V P                  '       d   V P                  4        R# R# r^  )r:  r?  Úadd_columns_summary_linerL  r-  ro  rF   s   &r%   rW  Ú5_DataFrameTableBuilderNonVerbose._fill_non_empty_info™  sO   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×$×$Ð$Ø×&Ñ&Ö(ñ %r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   ru  ¢  s   € ÷ >ñ >¨$ñ >r'   c                	óp   € V P                   P                  V P                  P                  R R7      4       R# )ÚColumns©ÚnameN)r  r8  r–   r>  rF   s   &r%   rw  Ú9_DataFrameTableBuilderNonVerbose.add_columns_summary_line¢  s&   € Ø�‰×Ñ˜4Ÿ8™8×,Ñ,°)Ð,Ó<Ö=r'   r$   N)ry   rz   r{   r|   r}   rW  rw  r€   r$   r'   r%   r	  r	  ”  s   † ñõ)÷>ñ >r'   r	  c                  ó
  € ] tR tRt$ RtR%tR]R&   R]R&   R]R&   R	]R
&   ]]R R l4       4       t	]R R l4       t
R R ltR R ltR R lt]R R l4       t]R R l4       tR R ltR R ltR R ltR R  ltR! R" ltR#tR$# )&Ú_TableBuilderVerboseMixini¦  z 
Mixin for verbose info output.
r#   ÚSPACINGzSequence[Sequence[str]]ÚstrrowsúSequence[int]Úgross_column_widthsrê   r  c               ó   € V ^8„  d   QhRR/# ©r   r"   zSequence[str]r$   )r
   s   "r%   r&   Ú&_TableBuilderVerboseMixin.__annotate__²  s   € ÷ =ñ =˜ñ =r'   c                ó   € R# )ú.Headers names of the columns in verbose table.Nr$   rF   s   &r%   ÚheadersÚ!_TableBuilderVerboseMixin.headers°  rJ   r'   c               ó   € V ^8„  d   QhRR/# ©r   r"   rƒ  r$   )r
   s   "r%   r&   r‡  ¶  s   € ÷ 2ñ 2 mñ 2r'   c                óV   € V P                    Uu. uF  p\        V4      NK  	  up# u upi )z'Widths of header columns (only titles).)rŠ  r›   ©rG   Úcols   & r%   Úheader_column_widthsÚ._TableBuilderVerboseMixin.header_column_widthsµ  s$   € ð %)§L¢LÓ1¡L˜S”�C–¡LÑ1Ð1ùÒ1s   �&c               ó   € V ^8„  d   QhRR/# r�  r$   )r
   s   "r%   r&   r‡  º  s   € ÷ 
ñ 
¨-ñ 
r'   c                óŠ   € V P                  4       p\        V P                  VRR7       Uu. uF  p\        V!  NK  	  up# u upi )zAGet widths of columns containing both headers and actual content.F©Ústrict)Ú_get_body_column_widthsÚzipr‘  Úmax)rG   Úbody_column_widthsÚwidthss   &  r%   Ú_get_gross_column_widthsÚ2_TableBuilderVerboseMixin._get_gross_column_widthsº  sS   € à!×9Ñ9Ó;Ðô Ø×)Ñ)Ð+=Àeõó
ñ�ô �ŒLññ
ð 	
ùò 
s   «A c               ó   € V ^8„  d   QhRR/# r�  r$   )r
   s   "r%   r&   r‡  Ä  s   € ÷ =ñ =¨ñ =r'   c                óŒ   € \        \        V P                  RR/ 4      pV Uu. uF  p\        R V 4       4      NK  	  up# u upi )z$Get widths of table content columns.r–  Tc              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irv   )r›   )Ú.0r6   s   & r%   Ú	<genexpr>ÚD_TableBuilderVerboseMixin._get_body_column_widths.<locals>.<genexpr>Ç  s   é € Ð(¡C˜q”C˜—F�F£Cùs   ‚)Úlistr˜  r‚  r™  )rG   Ústrcolsr�  s   &  r%   r—  Ú1_TableBuilderVerboseMixin._get_body_column_widthsÄ  s=   € ä+/´°T·\±\Ð0OÈ$Ñ0OÓ+PˆÙ4;Ó<±G¨S”Ñ(¡CÓ(Ö(±GÑ<Ð<ùÒ<s   £Ac               ó   € V ^8„  d   QhRR/# ©r   r"   zIterator[Sequence[str]]r$   )r
   s   "r%   r&   r‡  É  s   € ÷ 	3ñ 	3Ð2ñ 	3r'   c                óf   € V P                   '       d   V P                  4       # V P                  4       # )zl
Generator function yielding rows content.

Each element represents a row comprising a sequence of strings.
)r  Ú_gen_rows_with_countsÚ_gen_rows_without_countsrF   s   &r%   Ú	_gen_rowsÚ#_TableBuilderVerboseMixin._gen_rowsÉ  s.   € ð ××ÐØ×-Ñ-Ó/Ð/à×0Ñ0Ó2Ð2r'   c               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   r‡  Õ  s   € ÷ Lñ LÐ'>ñ Lr'   c                ó   € R# )ú=Iterator with string representation of body data with counts.Nr$   rF   s   &r%   rª  Ú/_TableBuilderVerboseMixin._gen_rows_with_countsÔ  rJ   r'   c               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   r‡  Ù  s   € ÷ Oñ OÐ*Añ Or'   c                ó   € R# )ú@Iterator with string representation of body data without counts.Nr$   rF   s   &r%   r«  Ú2_TableBuilderVerboseMixin._gen_rows_without_countsØ  rJ   r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r‡  Ü  s   € ÷ 	(ñ 	( ñ 	(r'   c           
     	óø   € V P                   P                  \        V P                  V P                  R R7       UUu. uF  w  r\        W4      NK  	  upp4      pV P                  P                  V4       R# u uppi ©Tr•  N)r�  rH  r˜  rŠ  r„  r*   r  r8  )rG   ÚheaderÚ	col_widthÚheader_lines   &   r%   Úadd_header_lineÚ)_TableBuilderVerboseMixin.add_header_lineÜ  sn   € Ø—l‘l×'Ñ'ô *-Ø—L‘L $×":Ñ":À4õ*ôñ*Ñ%�Fô ˜Ö+ñ*òó
ˆð 	�‰×Ñ˜;Ö'ùós   »A6
c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r‡  ç  s   € ÷ 	+ñ 	+ Dñ 	+r'   c           
     	ó  € V P                   P                  \        V P                  V P                  R R7       UUu. uF  w  r\        RV,          V4      NK  	  upp4      pV P                  P                  V4       R# u uppi )Tr•  Ú-N)r�  rH  r˜  r‘  r„  r*   r  r8  )rG   Úheader_colwidthÚgross_colwidthÚseparator_lines   &   r%   Úadd_separator_lineÚ,_TableBuilderVerboseMixin.add_separator_lineç  sx   € ØŸ™×*Ñ*ô 8;Ø×-Ñ-¨t×/GÑ/GÐPTõ8ôñ8Ñ3�Oô ˜˜Õ.°Ö?ñ8òó
ˆð 	�‰×Ñ˜>Ö*ùós   »A>
c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r‡  ò  s   € ÷ 
*ñ 
* ñ 
*r'   c                	ó  € V P                    Fk  pV P                  P                  \        WP                  R R7       UUu. uF  w  r#\        W#4      NK  	  upp4      pV P                  P                  V4       Km  	  R# u uppi r¸  )r‚  r�  rH  r˜  r„  r*   r  r8  )rG   Úrowr�  rÂ  Ú	body_lines   &    r%   Úadd_body_linesÚ(_TableBuilderVerboseMixin.add_body_linesò  sv   € Ø—<”<ˆCØŸ™×)Ñ)ô 03Ø×5Ñ5¸dõ0ôñ0Ñ+˜ô ˜SÖ1ñ0òóˆIð �K‰K×Ñ˜yÖ)ó  ùós   ¿A>c               ó   € V ^8„  d   QhRR/# ©r   r"   zIterator[str]r$   )r
   s   "r%   r&   r‡  þ  s   € ÷ &ñ & mñ &r'   c              #  óB   "  € V P                    F
  pV R2x € K  	  R# 5i)z7Iterator with string representation of non-null counts.z	 non-nullN)rV   )rG   r¢   s   & r%   Ú_gen_non_null_countsÚ._TableBuilderVerboseMixin._gen_non_null_countsþ  s"   é € à×)Ô)ˆEØ�G˜9Ð%Ô%ó *ùs   ‚c               ó   € V ^8„  d   QhRR/# rÍ  r$   )r
   s   "r%   r&   r‡    s   € ÷ &ñ &˜]ñ &r'   c              #  óN   "  € V P                    F  p\        V4      x € K  	  R# 5i)z5Iterator with string representation of column dtypes.N)rH   r   )rG   Údtypes   & r%   Ú_gen_dtypesÚ%_TableBuilderVerboseMixin._gen_dtypes  s   é € à—[”[ˆEÜ˜uÓ%Ô%ó !ùó   ‚#%r$   Nz  )ry   rz   r{   r|   r}   r�  r~   r   r   rŠ  r‘  rœ  r—  r¬  rª  r«  r¼  rÄ  rÊ  rÏ  rÔ  r€   r$   r'   r%   r€  r€  ¦  s¬   ‡ ñð €GˆSÓØ$Ó$Ø&Ó&ØÓàØô=ó ó ð=ð ô2ó ð2õ
õ=õ
	3ð ôLó ðLð ôOó ðOõ	(õ	+õ
*õ&÷
&ñ &r'   r€  c                  ó„   € ] tR tRtRtR R ltR R lt]R R l4       tR	 R
 lt	R R lt
R R ltR R ltR R ltRtR# )r  i	  z2
Dataframe info table builder for verbose output.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   r¬   r‚   r  rê   r"   rt   r$   )r
   s   "r%   r&   Ú*_DataFrameTableBuilderVerbose.__annotate__  s/   € ÷ 	Rñ 	Rð ð	Rð ð		Rð
 
ñ	Rr'   c               	ó„   € Wn         W n        \        V P                  4       4      V n        V P                  4       V n        R # rv   ©r¬   r  r¤  r¬  r‚  rœ  r„  ©rG   r¬   r  s   &$$r%   rˆ   Ú&_DataFrameTableBuilderVerbose.__init__  ó3   € ð Œ	Ø&ÔÜ04°T·^±^Ó5EÓ0FˆŒØ26×2OÑ2OÓ2QˆÖ r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   rÙ    ó   € ÷ 
)ñ 
) dñ 
)r'   c                ó.  € V P                  4        V P                  4        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V P                  '       d   V P                  4        R# R# r^  )	r:  r?  rw  r¼  rÄ  rÊ  rL  r-  ro  rF   s   &r%   rW  Ú2_DataFrameTableBuilderVerbose._fill_non_empty_info  ss   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×%Ñ%Ô'Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$×$Ð$Ø×&Ñ&Ö(ñ %r'   c               ó   € V ^8„  d   QhRR/# r†  r$   )r
   s   "r%   r&   rÙ  &  s   € ÷ *ñ *˜ñ *r'   c                ó6   € V P                   '       d   . RO# . RO# )r‰  )ú # ÚColumnúNon-Null Countr   )rå  ræ  r   ©r  rF   s   &r%   rŠ  Ú%_DataFrameTableBuilderVerbose.headers%  s   € ð ××ÐÚ?Ð?Ú)Ð)r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   rÙ  ,  s   € ÷ Nñ N¨$ñ Nr'   c                	óX   € V P                   P                  R V P                   R24       R# )zData columns (total z
 columns):N)r  r8  rœ   rF   s   &r%   rw  Ú6_DataFrameTableBuilderVerbose.add_columns_summary_line,  s#   € Ø�‰×ÑÐ1°$·.±.Ð1AÀÐLÖMr'   c               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   rÙ  /  s   € ÷ 
ñ 
Ð*Añ 
r'   c              #  ó”   "  € \        V P                  4       V P                  4       V P                  4       RR7       Rj  x€L
  R#  L5i)r´  Tr•  N)r˜  Ú_gen_line_numbersÚ_gen_columnsrÔ  rF   s   &r%   r«  Ú6_DataFrameTableBuilderVerbose._gen_rows_without_counts/  s>   é € äØ×"Ñ"Ó$Ø×ÑÓØ×ÑÓØô	
÷ 	
ô 	
ùs   ‚=A¿AÁ Ac               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   rÙ  8  s   € ÷ 
ñ 
Ð'>ñ 
r'   c              #  ó²   "  € \        V P                  4       V P                  4       V P                  4       V P	                  4       RR7       Rj  x€L
  R#  L5i©r°  Tr•  N)r˜  rï  rð  rÏ  rÔ  rF   s   &r%   rª  Ú3_DataFrameTableBuilderVerbose._gen_rows_with_counts8  sJ   é € äØ×"Ñ"Ó$Ø×ÑÓØ×%Ñ%Ó'Ø×ÑÓØô
÷ 	
ô 	
ùs   ‚AAÁAÁAc               ó   € V ^8„  d   QhRR/# rÍ  r$   )r
   s   "r%   r&   rÙ  B  s   € ÷ ñ  =ñ r'   c              #  óX   "  € \        V P                  4       F  w  rRV 2x € K  	  R# 5i)z6Iterator with string representation of column numbers.r0   N)Ú	enumerater–   )rG   ÚiÚ_s   &  r%   rï  Ú/_DataFrameTableBuilderVerbose._gen_line_numbersB  s%   é € ä˜dŸh™hÖ'‰DˆAØ�a�S�'ŒMó (ùs   ‚(*c               ó   € V ^8„  d   QhRR/# rÍ  r$   )r
   s   "r%   r&   rÙ  G  s   € ÷ $ñ $˜mñ $r'   c              #  óN   "  € V P                    F  p\        V4      x € K  	  R# 5i)z4Iterator with string representation of column names.N)r–   r   r�  s   & r%   rð  Ú*_DataFrameTableBuilderVerbose._gen_columnsG  s   é € à—8”8ˆCÜ˜sÓ#Ô#ó ùrÖ  ©r„  r¬   r‚  r  N)ry   rz   r{   r|   r}   rˆ   rW  r   rŠ  rw  r«  rª  rï  rð  r€   r$   r'   r%   r  r  	  sE   † ñõ	Rõ
)ð ô*ó ð*õNõ
õ
õ÷
$ñ $r'   r  c                  ój   € ] tR tRtRtR R ltR R lt]R R l4       tR	 R
 lt	]
R R l4       tRtR# )r  iM  zo
Abstract builder for series info table.

Parameters
----------
info : SeriesInfo.
    Instance of SeriesInfo.
c               ó    € V ^8„  d   QhRRRR/# )r   r¬   r´   r"   rt   r$   )r
   s   "r%   r&   Ú _SeriesTableBuilder.__annotate__W  s   € ÷ %ñ % 
ð %¨tñ %r'   c               	ó   € Wn         R # rv   r  rR  s   &$r%   rˆ   Ú_SeriesTableBuilder.__init__W  s   € Ø $Ž	r'   c               ó   € V ^8„  d   QhRR/# r  r$   )r
   s   "r%   r&   r  Z  s   € ÷ ñ ˜9ñ r'   c                	óH   € . V n         V P                  4        V P                   # rv   )r  rW  rF   s   &r%   rÑ   Ú_SeriesTableBuilder.get_linesZ  s   € ØˆŒØ×!Ñ!Ô#Ø�{‰{Ðr'   c               ó   € V ^8„  d   QhRR/# rŸ   r$   )r
   s   "r%   r&   r  `  s   € ÷ ñ �fñ r'   c                ó.   € V P                   P                  # )zSeries.r#  rF   s   &r%   rA   Ú_SeriesTableBuilder.data_  rc  r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  d  rk  r'   c                óV   € V P                   P                  RV P                   24       R# rm  rn  rF   s   &r%   ro  Ú)_SeriesTableBuilder.add_memory_usage_lined  rq  r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  i  s   € ÷ Kñ K dñ Kr'   c                ó   € R# ©z<Add lines to the info table, pertaining to non-empty series.Nr$   rF   s   &r%   rW  Ú(_SeriesTableBuilder._fill_non_empty_infoh  rJ   r'   rr  N)ry   rz   r{   r|   r}   rˆ   rÑ   r   rA   ro  r   rW  r€   r$   r'   r%   r  r  M  sA   † ñõ%õð
 ôó ðõHð ôKó ôKr'   r  c                  ó&   € ] tR tRtRtR R ltRtR# )r  im  z3
Series info table builder for non-verbose output.
c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   Ú*_SeriesTableBuilderNonVerbose.__annotate__r  s   € ÷ )ñ ) dñ )r'   c                ó®   € V P                  4        V P                  4        V P                  4        V P                  '       d   V P	                  4        R# R# r  )r:  r?  rL  r-  ro  rF   s   &r%   rW  Ú2_SeriesTableBuilderNonVerbose._fill_non_empty_infor  sC   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×$×$Ð$Ø×&Ñ&Ö(ñ %r'   r$   N)ry   rz   r{   r|   r}   rW  r€   r$   r'   r%   r  r  m  s   † ñ÷)ñ )r'   r  c                  ól   € ] tR tRtRtR R ltR R ltR R lt]R	 R
 l4       t	R R lt
R R ltRtR# )r  i{  z/
Series info table builder for verbose output.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   r¬   r´   r  rê   r"   rt   r$   )r
   s   "r%   r&   Ú'_SeriesTableBuilderVerbose.__annotate__€  s/   € ÷ 	Rñ 	Rð ð	Rð ð		Rð
 
ñ	Rr'   c               	ó„   € Wn         W n        \        V P                  4       4      V n        V P                  4       V n        R # rv   rÛ  rÜ  s   &$$r%   rˆ   Ú#_SeriesTableBuilderVerbose.__init__€  rÞ  r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  ‹  rà  r'   c                ó.  € V P                  4        V P                  4        V P                  4        V P                  4        V P	                  4        V P                  4        V P                  4        V P                  '       d   V P                  4        R# R# r  )	r:  r?  Úadd_series_name_liner¼  rÄ  rÊ  rL  r-  ro  rF   s   &r%   rW  Ú/_SeriesTableBuilderVerbose._fill_non_empty_info‹  ss   € à×!Ñ!Ô#Ø×!Ñ!Ô#Ø×!Ñ!Ô#Ø×ÑÔØ×ÑÔ!Ø×ÑÔØ×ÑÔØ×$×$Ð$Ø×&Ñ&Ö(ñ %r'   c               ó   € V ^8„  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  —  s   € ÷ =ñ = dñ =r'   c                	ój   € V P                   P                  R V P                  P                   24       R# )zSeries name: N)r  r8  rA   r}  rF   s   &r%   r  Ú/_SeriesTableBuilderVerbose.add_series_name_line—  s$   € Ø�‰×Ñ˜]¨4¯9©9¯>©>Ð*:Ð;Ö<r'   c               ó   € V ^8„  d   QhRR/# r†  r$   )r
   s   "r%   r&   r  ›  s   € ÷ ñ ˜ñ r'   c                ó4   € V P                   '       d   RR.# R.# )r‰  rç  r   rè  rF   s   &r%   rŠ  Ú"_SeriesTableBuilderVerbose.headersš  s#   € ð ××ÐØ$ gÐ.Ð.ØˆyÐr'   c               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   r  ¡  s   € ÷ =ñ =Ð*Añ =r'   c              #  óP   "  € R V P                  4        4        Rj  x€L
  R#  L5i)r´  c              3  ó&   "  € T F  q.x € K	  	  R # 5irv   r$   )r¡  rÓ  s   & r%   r¢  ÚF_SeriesTableBuilderVerbose._gen_rows_without_counts.<locals>.<genexpr>£  s   é € Ð<Ñ); •GÓ);ùs   ‚N)rÔ  rF   s   &r%   r«  Ú3_SeriesTableBuilderVerbose._gen_rows_without_counts¡  s   é € á<¨×)9Ñ)9Ô);Ó<×<Ô<ùs   ‚&�$ž&c               ó   € V ^8„  d   QhRR/# r¨  r$   )r
   s   "r%   r&   r  ¥  s   € ÷ Uñ UÐ'>ñ Ur'   c              #  óv   "  € \        V P                  4       V P                  4       RR7       Rj  x€L
  R#  L5irô  )r˜  rÏ  rÔ  rF   s   &r%   rª  Ú0_SeriesTableBuilderVerbose._gen_rows_with_counts¥  s)   é € ä�t×0Ñ0Ó2°D×4DÑ4DÓ4FÈtÔT×TÔTùs   ‚.9°7±9rÿ  N)ry   rz   r{   r|   r}   rˆ   rW  r  r   rŠ  r«  rª  r€   r$   r'   r%   r  r  {  s<   † ñõ	Rõ
)õ=ð ôó ðõ=÷Uñ Ur'   r  c               ó    € V ^8„  d   QhRRRR/# )r   Údfr   r"   rM   r$   )r
   s   "r%   r&   r&   ª  s   € ÷ Dñ D Ið DÐ2Cñ Dr'   c                ór   € V P                   P                  4       P                  R 4      P                  4       # )zC
Create mapping between datatypes and their number of occurrences.
c                ó   € V P                   # rv   r|  )r6   s   &r%   Ú<lambda>Ú-_get_dataframe_dtype_counts.<locals>.<lambda>¯  s   € °a·f²fr'   )rH   Úvalue_countsÚgroupbyr§   )r/  s   &r%   rŒ   rŒ   ª  s,   € ð
 �9‰9×!Ñ!Ó#×+Ñ+Ñ,<Ó=×AÑAÓCÐCr'   rv   )4Ú
__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   r   Úseries_examples_subÚseries_see_also_subÚseries_max_cols_subÚseries_sub_kwargsr*   r7   r=   r?   r‚   r´   rÌ   r­   r¼   rÚ   r  r	  r€  r  r  r  r  rŒ   r$   r'   r%   Ú<module>rD     sž  ðÝ "÷ó Ý Ý  å %å +Ý 3ç÷ó ÷÷
ñ ñ ð?ó€ñ ð9ó;Ð ñ| ð4óÐ ñ
 ðFóÐ ð ˆXØ�ØÐ'Ø�ØÐ'ØÐ'ØÐ6ðÐ õ'õ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>Ð'=ô >ô$`&Ð 5ô `&ôFA$Ð$:Ð<Uô A$ôHKÐ/ô Kô@)Ð$7ô )ô,UÐ!4Ð6Oô ,U÷^Dr'   