
    Mh+                    6   S r SSKJr  SSKJrJrJrJrJr  SSK	r
SSKJrJr  SSKJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJr  SSKJr  SSKJr  SSK J!r!J"r"  \(       a  SSK#J$r$J%r%J&r&J'r'J(r(   " S S5      r) " S S\5      r* " S S\*5      r+SS jr,SS jr-g)zc
Base class for the internal managers. Both BlockManager and ArrayManager
inherit from this class.
    )annotations)TYPE_CHECKINGAnyLiteralcastfinalN)using_copy_on_writewarn_copy_on_write)algoslibAbstractMethodError)validate_bool_kwarg)find_common_typenp_can_hold_element)ExtensionDtypeSparseDtype)PandasObject)extract_array)Indexdefault_index)	ArrayLikeAxisIntDtypeObjSelfShapec                      \ rS rSrS rSrg)_AlreadyWarned7   c                    SU l         g NFwarned_alreadyselfs    L/var/www/html/env/lib/python3.13/site-packages/pandas/core/internals/base.py__init___AlreadyWarned.__init__8   s     $    r"   N)__name__
__module____qualname____firstlineno__r'   __static_attributes__ r)   r&   r   r   7   s    $r)   r   c                     \ rS rSr% S\S'   \SS j5       r\S S j5       r\S S j5       r	\S!S j5       r
\S"S j5       r    S#         S$S
 jjr\  S%       S&S jj5       rS'S jr\S(S j5       r S)   S*S jjr S)   S*S jjr\S+S j5       r\S,S j5       r\S-S j5       r\S.S/S jj5       r\S0S1S jj5       r\S2S j5       r\S+S j5       r\  S3         S4S jj5       rS2S jrS2S jrS5S jrS6S jrS+S jrS7S jrSr g	)8DataManagerA   zlist[Index]axesc                    [        U 5      eNr   r$   s    r&   itemsDataManager.itemsF   s    !$''r)   c                ,    [        U R                  5      $ r5   )lenr6   r$   s    r&   __len__DataManager.__len__J   s    4::r)   c                ,    [        U R                  5      $ r5   )r9   r3   r$   s    r&   ndimDataManager.ndimN   s    499~r)   c                :    [        S U R                   5       5      $ )Nc              3  8   #    U  H  n[        U5      v   M     g 7fr5   )r9   ).0axs     r&   	<genexpr>$DataManager.shape.<locals>.<genexpr>T   s     1ySWWys   )tupler3   r$   s    r&   shapeDataManager.shapeR   s    1tyy111r)   c                    [        U R                  U   5      n[        U5      nUS:X  a  [        U R                  5      S:X  a  g XC:w  a  [        SU SU S35      eg )N   r   z#Length mismatch: Expected axis has z elements, new values have z	 elements)r9   r3   r6   
ValueError)r%   axis
new_labelsold_lennew_lens        r&   _validate_set_axisDataManager._validate_set_axisV   sj     diio&j/19TZZA- 5gY ?&iy2   r)   Nc                    [        U 5      er5   r   )r%   new_axisindexerrK   
fill_value
allow_dupscopy
only_slices           r&   reindex_indexerDataManager.reindex_indexerg   s     "$''r)   c           	     j    U R                   U   R                  U5      u  pU R                  UUUUSUS9$ )z$
Conform data manager to new index.
F)rK   rT   rV   rW   )r3   reindexrX   )r%   	new_indexrK   rT   rW   rS   s         r&   reindex_axisDataManager.reindex_axiss   sI     "YYt_44Y?	##!! $ 
 	
r)   c                    [        U 5      e)zy
To be implemented by the subclasses. Only check the column values
assuming shape and indexes have already been checked.
r   )r%   others     r&   _equal_valuesDataManager._equal_values   s    
 "$''r)   c                    [        U[        U 5      5      (       d  gU R                  UR                  p2[        U5      [        U5      :w  a  g[	        S [        X#5       5       5      (       d  gU R                  U5      $ )z%
Implementation for DataFrame.equals
Fc              3  H   #    U  H  u  pUR                  U5      v   M     g 7fr5   )equals)rA   ax1ax2s      r&   rC   %DataManager.equals.<locals>.<genexpr>   s     N3Mxs3::c??3Ms    ")
isinstancetyper3   r9   allzipra   )r%   r`   	self_axes
other_axess       r&   re   DataManager.equals   sd    
 %d,, $		5:::y>S_,N3y3MNNN!!%((r)   c                    [        U 5      er5   r   r%   f
align_keyskwargss       r&   applyDataManager.apply        "$''r)   c                    [        U 5      er5   r   rq   s       r&   apply_with_blockDataManager.apply_with_block   rw   r)   c                "    U R                  SUS9$ )Nru   )func)ru   )r%   r|   s     r&   isnaDataManager.isna   s    zz'z--r)   c           
     |    Ub  [         R                  " S US9nU R                  SUUUU[        5       [	        5       S9$ )N)limitfillna)valuer   inplacedowncast	using_cowalready_warned)libalgosvalidate_limitry   r	   r   )r%   r   r   r   r   s        r&   r   DataManager.fillna   sM    ++D>E$$)+)+ % 
 	
r)   c                j    U(       a  SS/nOS/n[        USS9nU R                  SUUU[        5       S9$ )Nr`   condTextract_numpywhere)rs   r`   r   r   )r   ry   r	   )r%   r`   r   alignrs   s        r&   r   DataManager.where   sL    !6*J J!%t<E$$!)+ % 
 	
r)   c           	         U(       a  SS/nOS/n[        USS9nS n[        5       (       a  [        5       nU(       d  SUl        U R	                  SUUU[        5       US9$ )NnewmaskTr   putmask)rs   r   r   r   r   )r   r
   r   r#   ry   r	   )r%   r   r   r   warnrs   r   s          r&   r   DataManager.putmask   so    J J48C+-N04-$$!)+) % 
 	
r)   c                $    U R                  SUUS9$ )Nround)decimalsr   )ry   )r%   r   r   s      r&   r   DataManager.round   s#    $$ % 
 	
r)   c           	         [        US5      n[        R                  " U5      (       a   e[        R                  " U5      (       a   eU R                  SUUU[	        5       [        5       S9$ )Nr   replace)
to_replacer   r   r   r   )r   r   is_list_likery   r	   r   )r%   r   r   r   s       r&   r   DataManager.replace   sl    %gy9##J////##E****$$!)+)+ % 
 	
r)   c                R    U R                   "  S0 UD[        5       [        5       S.D6$ )Nr   r   )_replace_regexry   r	   r   )r%   rt   s     r&   replace_regexDataManager.replace_regex  s3    $$

 *+)+	
 	
r)   c           
         [        US5      nU R                  SUUUU[        5       [        5       S9nUR	                  5         U$ )zdo a list replacer   replace_list)src_list	dest_listr   regexr   r   )r   ry   r	   r   _consolidate_inplace)r%   r   r   r   r   bms         r&   r   DataManager.replace_list  sS     &gy9"")+)+ # 
 	!	r)   c                V    U R                   "  SSU0UD[        5       [        5       S.D6$ )Nr   r   )interpolater   r%   r   rt   s      r&   r   DataManager.interpolate"  s=    $$

 
 *+)+
 	
r)   c                V    U R                   "  SSU0UD[        5       [        5       S.D6$ )Nr   r   )pad_or_backfillr   r   s      r&   r   DataManager.pad_or_backfill+  s=    $$

 
 *+)+
 	
r)   c                L    U[         R                  L a  S nU R                  SXS9$ )Nshift)periodsrT   )r   
no_defaultry   )r%   r   rT   s      r&   r   DataManager.shift4  s)    'J$$Wg$UUr)   c                    g)NTr/   r$   s    r&   is_consolidatedDataManager.is_consolidated=  s    r)   c                    U $ r5   r/   r$   s    r&   consolidateDataManager.consolidate@  s    r)   c                    g r5   r/   r$   s    r&   r    DataManager._consolidate_inplaceC  s    r)   r/   )returnr   )r   int)r   r   )rK   r   rL   r   r   None)NFTF)
rK   r   rU   boolrV   r   rW   r   r   r   r!   )r\   r   rK   r   rW   r   r   r   )r`   r   r   r   )r`   objectr   r   r5   )rs   zlist[str] | Noner   r   )r   r   )r   z
int | Noner   r   r   r   )r   r   r   r   )TT)r   r   r   r   r   r   )F)r   r   r   r   r   r   )r   r   r   r   )FF)
r   	list[Any]r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   )!r*   r+   r,   r-   __annotations__propertyr6   r   r:   r=   rF   rO   rX   r]   ra   re   ru   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r/   r)   r&   r1   r1   A   s?    ( (     2 2  *   
( 	
( 
( 
( 
( 

( 
  

 

 
 

 
*( ) )$ (,( %(
 
( (,( %(
 
( . . 
 
 
 
 
 
, 
 
 
 
 
 
 
   	
  
 ,

Vr)   r1   c                  n    \ rS rSr\S	S j5       r\\S
S j5       5       rSSS jjrS r	\
SS j5       rSrg)SingleDataManageriG  c                    g)NrI   r/   r$   s    r&   r=   SingleDataManager.ndimH  s    r)   c                     U R                   S   $ )zG
Quick access to the backing array of the Block or SingleArrayManager.
r   )arraysr$   s    r&   arraySingleDataManager.arrayL  s     {{1~r)   c                   U R                   n[        U[        R                  5      (       a  [	        UR
                  U5      n[        U[        R                  5      (       a$  UR                  S:X  a  [        U5      S:X  a  US   nX$U'   g)z
Set values with indexer.

For Single[Block/Array]Manager, this backs s[indexer] = value

This is an inplace version of `setitem()`, mutating the manager/values
in place, not returning a new Manager (and Block), and thus never changing
the dtype.
rI   )r   .N)r   ri   npndarrayr   dtyper=   r9   )r%   rS   r   r   arrs        r&   setitem_inplace!SingleDataManager.setitem_inplaceU  sg     jj c2::&& (		59EeRZZ((UZZ1_Uq&MEGr)   c                    U R                   nU" U5      n[        [        U5      5      n[        U 5      R	                  X45      nU$ r5   )r   r   r9   rj   
from_array)r%   r|   r   resindexmgrs         r&   grouped_reduce SingleDataManager.grouped_reducem  s;    jj3ic#h'4j##C/
r)   c                    [        U 5      er5   r   )clsr   r   s      r&   r   SingleDataManager.from_arrayu  s    !#&&r)   r/   N)r   z
Literal[1])r   r   )T)r   r   r   r   )r   r   r   r   )r*   r+   r,   r-   r   r=   r   r   r   r   classmethodr   r.   r/   r)   r&   r   r   G  sN        0 ' 'r)   r   c                :    [        U 5      (       d  g[        U 5      $ )z
Find the common dtype for `blocks`.

Parameters
----------
blocks : List[DtypeObj]

Returns
-------
dtype : np.dtype, ExtensionDtype, or None
    None is returned when `blocks` is empty.
N)r9   r   )dtypess    r&   interleaved_dtyper   z  s     v;;F##r)   c                B   [        U [        5      (       a(  U R                  n [        [        R
                  U 5      n U $ [        U [        5      (       a  [        R
                  " S5      n U $ U [        R
                  " [        5      :X  a  [        R
                  " S5      n U $ )Nr   )ri   r   subtyper   r   r   r   str)r   s    r&   ensure_np_dtyper     sz     %%%RXXu%
 L	 
E>	*	*" L 
"((3-	"Lr)   )r   zlist[DtypeObj]r   zDtypeObj | None)r   r   r   znp.dtype).__doc__
__future__r   typingr   r   r   r   r   numpyr   pandas._configr	   r
   pandas._libsr   r   r   pandas.errorsr   pandas.util._validatorsr   pandas.core.dtypes.castr   r   pandas.core.dtypes.dtypesr   r   pandas.core.baser   pandas.core.constructionr   pandas.core.indexes.apir   r   pandas._typingr   r   r   r   r   r   r1   r   r   r   r/   r)   r&   <module>r      s    #  
 . 7
 * 2
  $ $C, CL0' 0'f$&
r)   