+
    xȇij                    |   ^ 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   "f/Users/max/.openclaw/workspace/postharvest/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    . q6&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5t7J7JKLB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yy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    *499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     yy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     yy   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     488}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     yy  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*yy%%Dt%<@@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    /*9TYY+?@@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*yy%%Dt%<<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>     	II	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 44 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     DNNT]]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		NT]]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       yy"""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Q4;Q;Q7Q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YY ,,  \\U"3CC###3CC0YY ,, 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  zClass 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,     	II	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<</-YY ,, 
 1dii@@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    yy~~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     yy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     yy%%%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     DII**++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     yy,,,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    yy(((r'   c                   V ^8  d   QhRR/# r   r"   rt   r$   )r
   s   "r%   r&   r  Q  s     1 1d 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!    3tDII/0r'   c                   V ^8  d   QhRR/# r6  r$   )r
   s   "r%   r&   r  U  s     7 7d 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%    499??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     /5T5F5F5L5L5N.O
.O(#se1SG1.O 	 
 	Xdii0@&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    !!#!!#VD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       yy~~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     yy}}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&    488,,),<=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 2m 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$     %)LL1LS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_widths2_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     (CqCFFCs   )listr  r  r  )rG   strcolsr  s   &  r%   r  1_TableBuilderVerboseMixin._get_body_column_widths  s=    +/T\\0O$0O+P4;<GS(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    ll'' *-LL$":":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/GPT883O .?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5d00+ S10I KK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G9%% *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     GS$$&&=  = 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     	&04T^^5E0F262O2O2Q 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%     dhh'DAaS'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     88C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$    ]499>>*:;<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2D4D4D4FtTTTs   .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    affr'   )rH   value_countsgroupbyr   )r/  s   &r%   r   r     s,    
 99!!#++,<=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!46O ,U^Dr'   