+
    xȇiVS                      ^ RI Ht ^ RIHtHtHt ^ RIt^ RIHtH	t	H
t
HtHtHtHt ^ RIt^ RIt^ RIHt ^ RIHtHtHt ^ RIHtHt ^ RIHt ^ R	IH t H!t! ^ R
I"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t)H*t*H+t+ ^ RI,H-t-H.t.H/t/ ^ RI0H1t1H2t2H3t3H4t4 ^ RI5H6t6H7t7 ^ RI8H9t9H:t: ^ RI;H<u H=t ^ RI>H?t? ^ RI@HAtA ^ RIBHCtC ^ RIDHEtEHFtF ^ RIGHHtH ^ RIIHJtJHKtKHLtL ^ RIMHNtNHOtOHPtPHQtQHRtRHStSHTtTHUtU ^ RIVHWtWHXtX ]'       d   ^ RIHYtY ^ RIZH[t[H\t\H]t]H^t^H_t_H`t` ^ RIaHbtb R R ltcR R  ltd ! R! R"]C4      te ! R# R$]P                  ]e4      tf ! R% R&]e4      tgR=R' R( llthR) R* ltiR>R+ R, lltjR- R. ltkR/ R0 ltlR1 R2 ltmR3 R4 ltnR5 R6 ltoR7 R8 ltpR9 R: ltqR; R< ltrR# )?    )annotations)CallableHashableSequenceN)TYPE_CHECKINGAnyLiteralNoReturnSelfcastfinal)
get_option)algos	internalslib)BlockPlacementBlockValuesRefs)	Timestamp)AbstractMethodErrorPerformanceWarning)cache_readonly)find_stack_level)validate_bool_kwarg)find_common_typeinfer_dtype_from_scalarnp_can_hold_element)ensure_platform_intis_1d_only_ea_dtypeis_list_like)CategoricalDtypeDatetimeTZDtypeExtensionDtypeSparseDtype)ABCDataFrame	ABCSeries)array_equalsisna)DatetimeArray)NDArrayBackedExtensionArray)PandasObject)ensure_wrapped_if_datetimelikeextract_array)maybe_convert_indices)Indexdefault_indexensure_index)Block
NumpyBlockensure_block_shapeextend_blocksget_block_typemaybe_coerce_values	new_blocknew_block_2d)blockwise_alloperate_blockwise)	Generator)	ArrayLikeAxisIntDtypeObjQuantileInterpolationShapenpt)ExtensionArrayc                    V ^8  d   QhRRRR/# )   dtypeszlist[DtypeObj]returnzDtypeObj | None )formats   "n/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/internals/managers.py__annotate__rJ   o   s     $ $n $ $    c                >    \        V 4      '       g   R# \        V 4      # )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)lenr   )rE   s   &rI   interleaved_dtyperN   o   s     v;;F##rK   c                    V ^8  d   QhRRRR/# )rD   dtyper>   rF   np.dtyperG   )rH   s   "rI   rJ   rJ      s     
 
8 
 
rK   c                H   \        V \        4      '       d)   V P                  p \        \        P
                  V 4      p V # \        V \        4      '       d   \        P
                  ! R 4      p V # V \        P
                  ! \        4      8X  d   \        P
                  ! R 4      p V # )object)
isinstancer#   subtyper   nprP   r"   strrP   s   &rI   ensure_np_dtyperY      sz     %%%RXXu%
 L	 
E>	*	*" L 
"((3-	"LrK   c                  D   ] tR t^t$ RtRtR]R&   R]R&   R]R&   R]R&   ]R	 R
 l4       tR]R&   R]R&   RR 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RR R l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tR) R* ltR+ R, ltR- R. ltR/ R0 lt]R1 R2 l4       tR3 R4 ltR5 R6 lt]
R7 R8 l4       tRR9 R: llt ]
R; R< l4       t!]
R= R> l4       t"]
R? R@ l4       t#]
RRA RB ll4       t$]
RC RD l4       t%]
RE RF l4       t&]
RG RH l4       t']
RRJ RK ll4       t(RL RM lt)RN RO lt*RP RQ lt+RR RS lt,RT RU lt-RRV RW llt.RX RY lt/RZ t0R[R\R]R/R^ R_ llt1]R` Ra l4       t2]Rb Rc l4       t3Rd Re lt4Rf Rg lt5Rh Ri lt6RRj Rk llt7]Rl Rm l4       t8Rn Ro lt9Rp Rq lt:Rr Rs lt;Rt Ru lt<]
RRv Rw ll4       t=RRxRI/Ry Rz lllt>]?P                  RI3RxRIR{RI/R| R} llltARR~ R lltBRR R lltCRtDR# )BaseBlockManagera  
Core internal data structure to implement DataFrame, Series, etc.

Manage a bunch of labeled 2D mixed-type ndarrays. Essentially it's a
lightweight blocked set of labeled data to be manipulated by the DataFrame
public API class

Attributes
----------
shape
ndim
axes
values
items

Methods
-------
set_axis(axis, new_labels)
copy(deep=True)

get_dtypes

apply(func, axes, block_filter_fn)

get_bool_data
get_numeric_data

get_slice(slice_like, axis)
get(label)
iget(loc)

take(indexer, axis)
reindex_axis(new_labels, axis)
reindex_indexer(new_labels, indexer, axis)

delete(label)
insert(loc, label, value)
set(label, value)

Parameters
----------
blocks: Sequence of Block
axes: Sequence of Index
verify_integrity: bool, default True

Notes
-----
This is *not* a public API class
npt.NDArray[np.intp]_blknos_blklocstuple[Block, ...]blockslist[Index]axesc                   V ^8  d   QhRR/# rD   rF   intrG   )rH   s   "rI   rJ   BaseBlockManager.__annotate__   s     " "c "rK   c                	    \         hNNotImplementedErrorselfs   &rI   ndimBaseBlockManager.ndim       !!rK   bool_known_consolidated_is_consolidatedc                    V ^8  d   QhRRRR/# )rD   verify_integrityrp   rF   NonerG   )rH   s   "rI   rJ   rf      s     " "t "t "rK   c                	    \         hrh   ri   )rl   r`   rb   rt   s   &&&&rI   __init__BaseBlockManager.__init__   s    !!rK   c                   V ^8  d   QhRR/# rd   rG   )rH   s   "rI   rJ   rf      s       rK   c                	,    \        V P                  4      # rh   )rM   itemsrk   s   &rI   __len__BaseBlockManager.__len__   s    4::rK   c                   V ^8  d   QhRR/# )rD   rF   r@   rG   )rH   s   "rI   rJ   rf      s     2 2u 2rK   c                	    \         ;QJ d    . R  V P                   4       F  NK  	  5# ! R  V P                   4       4      # )c              3  8   "   T F  p\        V4      x  K  	  R # 5irh   rM   .0axs   & rI   	<genexpr>)BaseBlockManager.shape.<locals>.<genexpr>   s     1ySWWy   )tuplerb   rk   s   &rI   shapeBaseBlockManager.shape   s,    u1tyy1u1u1tyy111rK   c               $    V ^8  d   QhRRRRRR/# rD   r`   list[Block]rb   ra   rF   r   rG   )rH   s   "rI   rJ   rf      s!     " " "K "D "rK   c                	    \         hrh   ri   clsr`   rb   s   &&&rI   from_blocksBaseBlockManager.from_blocks   ro   rK   c                   V ^8  d   QhRR/# rD   rF   r\   rG   )rH   s   "rI   rJ   rf      s      , rK   c                V    V P                   f   V P                  4        V P                   # )z
Suppose we want to find the array corresponding to our i'th column.

blknos[i] identifies the block from self.blocks that contains this column.

blklocs[i] identifies the column of interest within
self.blocks[self.blknos[i]]
)r]   _rebuild_blknos_and_blklocsrk   s   &rI   blknosBaseBlockManager.blknos   s$     <<,,.||rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf      s      - rK   c                V    V P                   f   V P                  4        V P                   # )z
See blknos.__doc__
)r^   r   rk   s   &rI   blklocsBaseBlockManager.blklocs   s$    
 == ,,.}}rK   Nc                   V ^8  d   QhRR/# rD   rF   r   rG   )rH   s   "rI   rJ   rf      s     4 4t 4rK   c                t   Vf    \        ^ 4      .V P                  R,          OpV P                  ^8X  dj   \        V \        4      '       g   Q hV P
                  ^ ,          pVP                  R,          p\        \        ^ ^ 4      4      pVP                  W4R7      pV.pM. p\        V 4      P                  Wa4      # )z9return an empty BlockManager with the items axis of len 0   NNNr   N	placement)r/   rb   rm   rT   SingleBlockManagerr`   valuesr   slicemake_block_same_classtyper   )rl   rb   blkarrbpnbr`   s   &&     rI   
make_emptyBaseBlockManager.make_empty   s    <!!$5tyy}5D 99>d$67777++a.C**R.Ca,B**3*=BTFFDz%%f33rK   c                   V ^8  d   QhRR/# rD   rF   rp   rG   )rH   s   "rI   rJ   rf     s      $ rK   c                	    R # TrG   rk   s   &rI   __bool__BaseBlockManager.__bool__      rK   c               $    V ^8  d   QhRRRRRR/# rD   axisr=   
new_labelsr.   rF   ru   rG   )rH   s   "rI   rJ   rf     s!     % %W %% %D %rK   c                	D    V P                  W4       W P                  V&   R # rh   )_validate_set_axisrb   )rl   r   r   s   &&&rI   set_axisBaseBlockManager.set_axis  s    1$		$rK   c               $    V ^8  d   QhRRRRRR/# r   rG   )rH   s   "rI   rJ   rf     s!      w E d rK   c                	    \        V P                  V,          4      p\        V4      pV^8X  d   \        V P                  4      ^ 8X  d   R# WC8w  d   \        RV RV R24      hR# )r   z#Length mismatch: Expected axis has z elements, new values have z	 elementsN)rM   rb   r{   
ValueError)rl   r   r   old_lennew_lens   &&&  rI   r   #BaseBlockManager._validate_set_axis  sj     diio&j/19TZZA- 5gY ?&iy2   rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf   &  s     % % %rK   c                	2    \        V P                  4      ^8H  # r   rM   r`   rk   s   &rI   is_single_block BaseBlockManager.is_single_block%  s     4;;1$$rK   c                   V ^8  d   QhRR/# rD   rF   r.   rG   )rH   s   "rI   rJ   rf   +        u rK   c                	(    V P                   ^ ,          # r   rb   rk   s   &rI   r{   BaseBlockManager.items*      yy|rK   c                    V ^8  d   QhRRRR/# rD   ire   rF   rp   rG   )rH   s   "rI   rJ   rf   .  s     3 33 34 3rK   c                J    V P                   V,          pV P                  V4      # z
Check for column `i` if it has references.
(whether it references another array or is itself being referenced)
Returns True if the column has no references.
)r   _has_no_reference_block)rl   r   blknos   && rI   _has_no_reference"BaseBlockManager._has_no_reference.  s"     A++E22rK   c                    V ^8  d   QhRRRR/# )rD   r   re   rF   rp   rG   )rH   s   "rI   rJ   rf   7  s     ; ;S ;T ;rK   c                b    V P                   V,          P                  P                  4       '       * # )z
Check for block `i` if it has references.
(whether it references another array or is itself being referenced)
Returns True if the block has no references.
r`   refshas_reference)rl   r   s   &&rI   r   (BaseBlockManager._has_no_reference_block7  s%     ;;u%**88:::rK   c                    V ^8  d   QhRRRR/# )rD   mgrr[   rF   ru   rG   )rH   s   "rI   rJ   rf   ?  s     
( 
("2 
(t 
(rK   c                   \        V P                  4      \        VP                  4      8w  d   R# \        V P                  4       FB  w  r#VP                  V,          P                  Vn        VP                  P	                  V4       KD  	  R# )zn
Adds the references from one manager to another. We assume that both
managers have the same block structure.
N)rM   r`   	enumerater   add_reference)rl   r   r   r   s   &&  rI   add_referencesBaseBlockManager.add_references?  s\    
 t{{s3::.,FAzz!}))CHHH""3' -rK   c               $    V ^8  d   QhRRRRRR/# )rD   r   r[   r   re   rF   rp   rG   )rH   s   "rI   rJ   rf   K  s'     U U*: U3 U4 UrK   c                2  a V P                   V,          o\        ;QJ dD    V3R lVP                   V,          P                  P                   4       F  '       g   K   R# 	  R# ! V3R lVP                   V,          P                  P                   4       4      # )z^
Checks if two blocks from two different block managers reference the
same underlying values.
c              3  6   <"   T F  pSV! 4       J x  K  	  R # 5irh   rG   )r   refr   s   & rI   r   :BaseBlockManager.references_same_values.<locals>.<genexpr>Q  s     T+SC3#%<+Ss   TF)r`   anyr   referenced_blocks)rl   r   r   r   s   &&&@rI   references_same_values'BaseBlockManager.references_same_valuesK  sf    
 kk% sT3::e+<+A+A+S+STssTsTsT3::e+<+A+A+S+STTTrK   c                   V ^8  d   QhRR/# rD   rF   znpt.NDArray[np.object_]rG   )rH   s   "rI   rJ   rf   S  s     ( (3 (rK   c                	    \         P                  ! V P                   Uu. uF  qP                  NK  	  up\        R 7      pVP                  V P                  4      # u upi rX   )rV   arrayr`   rP   rS   taker   rl   r   rE   s   &  rI   
get_dtypesBaseBlockManager.get_dtypesS  s?    <99<FK{{4;;'' =s   Ac                   V ^8  d   QhRR/# )rD   rF   list[ArrayLike]rG   )rH   s   "rI   rJ   rf   X  s     3 3 3rK   c                V    V P                    Uu. uF  qP                  NK  	  up# u upi )a}  
Quick access to the backing arrays of the Blocks.

Only for compatibility with ArrayManager for testing convenience.
Not to be used in actual code, and return value is not the same as the
ArrayManager method (list of 1D arrays vs iterator of 2D ndarrays / 1D EAs).

Warning! The returned arrays don't handle Copy-on-Write, so this should
be used with caution (only in read-mode).
r`   r   )rl   r   s   & rI   arraysBaseBlockManager.arraysW  s"     '+kk2ks

k222s   &c                   V ^8  d   QhRR/# )rD   rF   rW   rG   )rH   s   "rI   rJ   rf   g  s     
 
# 
rK   c                	    \        V 4      P                  p\        V P                  4       F)  w  r#V^ 8X  d   VRV 2,          pK  VRV RV 2,          pK+  	  V P                   F  pVRV 2,          pK  	  V# )r   z
Items: z
Axis z: 
)r   __name__r   rb   r`   )rl   outputr   r   blocks   &    rI   __repr__BaseBlockManager.__repr__g  sz    d$$tyy)EAAvIbT**GA3b--	 * [[E5'l"F !rK   c                    V ^8  d   QhRRRR/# rD   otherr   rF   rp   rG   )rH   s   "rI   rJ   rf   s  s     ( (4 (D (rK   c                    \        V 4      h)zy
To be implemented by the subclasses. Only check the column values
assuming shape and indexes have already been checked.
)r   rl   r  s   &&rI   _equal_valuesBaseBlockManager._equal_valuess  s    
 "$''rK   c                    V ^8  d   QhRRRR/# )rD   r  rS   rF   rp   rG   )rH   s   "rI   rJ   rf   {  s     ) )F )t )rK   c           	     f   \        V\        V 4      4      '       g   R# V P                  VP                  r2\        V4      \        V4      8w  d   R# \        ;QJ d'    R \        W#RR7       4       F  '       d   K   RM	  RM! R \        W#RR7       4       4      '       g   R# V P                  V4      # )z%
Implementation for DataFrame.equals
Fc              3  H   "   T F  w  rVP                  V4      x  K  	  R # 5irh   )equals)r   ax1ax2s   &  rI   r   *BaseBlockManager.equals.<locals>.<genexpr>  s       
,SCJJsOO,Ss    "Tstrict)rT   r   rb   rM   allzipr  )rl   r  	self_axes
other_axess   &&  rI   r  BaseBlockManager.equalsz  s    
 %d,, $		5:::y>S_,s 
,/	d,S
sss 
,/	d,S
 
 
 !!%((rK   c                    V ^8  d   QhRRRR/# )rD   
align_keyszlist[str] | NonerF   r   rG   )rH   s   "rI   rJ   rf     s      2 2 %2
 
2rK   c                T   RV9  g   Q hT;'       g    . p. pV Uu/ uF  qUW5,          bK  	  ppV P                    EF  pV'       d   VP                  4        F  w  rX\        V\        \        34      '       d~   VP
                  ^8X  d6   VP                  VP                  P                  ,          P                  W5&   Kg  VP                  RVP                  P                  3,          P                  W5&   K  WP                  P                  ,          W5&   K  	  \        V4      '       d   VP                  ! V3/ VB p	M\        Wq4      ! R/ VB p	\        W4      pEK   	  \        V 4      P                  Y@P                    U
u. uF  qP#                  4       NK  	  up
4      pV# u upi u up
i )a  
Iterate over the blocks, collect and create a new BlockManager.

Parameters
----------
f : str or callable
    Name of the Block method to apply.
align_keys: List[str] or None, default None
**kwargs
    Keywords to pass to `f`

Returns
-------
BlockManager
filterNNNrG   )r`   r{   rT   r%   r$   rm   ilocmgr_locsindexer_valuescallableapplygetattrr4   r   r   rb   view)rl   fr  kwargsresult_blockskaligned_argsbobjappliedr   outs   &&&,        rI   r(  BaseBlockManager.apply  sT   * v%%%%%2
%' /99j69j9A*002FA!#	<'@AA 88q=(+1C1C(D(L(LFI(+AJJ4F4F1F(G(O(OFI %(

(:(:$;	 3 {{''!.v.!!-1&1)'AM% ( 4j$$]4S2WWY4ST
/ :, 5Ts   F ?F%
c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s     . .D .rK   c                	(    V P                  R VR7      # )r(  )funcr(  )rl   r7  s   &&rI   r'   BaseBlockManager.isna  s    zz'z--rK   c               $    V ^8  d   QhRRRRRR/# )rD   limitz
int | Noneinplacerp   rF   r   rG   )rH   s   "rI   rJ   rf     s!     

 

: 

 

 

rK   c                	d    Ve   \         P                  ! R VR7      pV P                  RVVVR7      # )N)r;  fillna)valuer;  r<  )libalgosvalidate_limitr(  )rl   r?  r;  r<  s   &&&&rI   r>  BaseBlockManager.fillna  s<    ++D>Ezz	  
 	
rK   c                    V ^8  d   QhRRRR/# rD   alignrp   rF   r   rG   )rH   s   "rI   rJ   rf     s     
 
 
 
rK   c                	f    V'       d   R R.pMR.p\        VRR7      pV P                  RVVVR7      # )r  condTextract_numpywhere)r  r  rG  r,   r(  )rl   r  rG  rE  r  s   &&&& rI   rJ  BaseBlockManager.where  sD    !6*J J!%t<Ezz!	  
 	
rK   c                    V ^8  d   QhRRRR/# rD  rG   )rH   s   "rI   rJ   rf     s     
 
 
 
rK   c                	f    V'       d   R R.pMR.p\        VRR7      pV P                  RVVVR7      # )newmaskTrH  putmask)r  rP  rO  rK  )rl   rP  rO  rE  r  s   &&&& rI   rQ  BaseBlockManager.putmask  sC    J J48Czz!	  
 	
rK   c                    V ^8  d   QhRRRR/# )rD   decimalsre   rF   r   rG   )rH   s   "rI   rJ   rf     s     6 6c 6d 6rK   c                	(    V P                  R VR7      # )round)rT  r8  )rl   rT  s   &&rI   rV  BaseBlockManager.round  s    zz'Hz55rK   c                    V ^8  d   QhRRRR/# rD   r<  rp   rF   r   rG   )rH   s   "rI   rJ   rf     s     

 

$ 

4 

rK   c                	    \        VR 4      p\        P                  ! V4      '       d   Q h\        P                  ! V4      '       d   Q hV P                  RVVVR7      # )r<  replace)
to_replacer?  r<  )r   r   r   r(  )rl   r\  r?  r<  s   &&&&rI   r[  BaseBlockManager.replace  s^    %gy9##J////##E****zz!	  
 	
rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s     6 6 6rK   c                	&    V P                   ! R/ VB # )_replace_regex)r`  r8  rl   r,  s   &,rI   replace_regexBaseBlockManager.replace_regex   s    zz5f55rK   Fc          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rD   src_listz	list[Any]	dest_listr<  rp   regexrF   r   rG   )rH   s   "rI   rJ   rf     s<        	
  
rK   c                j    \        VR4      pV P                  RVVVVR7      pVP                  4        V# )zdo a list replacer<  replace_list)re  rf  r<  rg  )r   r(  _consolidate_inplace)rl   re  rf  r<  rg  bms   &&&&& rI   ri  BaseBlockManager.replace_list  sE     &gy9ZZ  
 	!	rK   c                    V ^8  d   QhRRRR/# rY  rG   )rH   s   "rI   rJ   rf     s     D D4 Dd DrK   c                	*    V P                   ! RRV/VB # )interpolater<  )ro  r8  rl   r<  r,  s   &&,rI   ro  BaseBlockManager.interpolate  s    zzCCFCCrK   c                    V ^8  d   QhRRRR/# rY  rG   )rH   s   "rI   rJ   rf     s     H Ht H$ HrK   c                	*    V P                   ! RRV/VB # )pad_or_backfillr<  )rt  r8  rp  s   &&,rI   rt   BaseBlockManager.pad_or_backfill  s    zzGWGGGrK   c                    V ^8  d   QhRRRR/# )rD   periodsre   rF   r   rG   )rH   s   "rI   rJ   rf     s     K KS K KrK   c                	T    V\         P                  J d   R pV P                  RWR7      # )Nshift)rw  
fill_value)r   
no_defaultr(  )rl   rw  rz  s   &&&rI   ry  BaseBlockManager.shift  s&    'Jzz'7zJJrK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf   %  s     7C 7C 7CrK   c                h   \        V\        P                  4      '       d4   VP                  V P                  8  d   \	        RV P                   24      hV P                  ^ 4      '       Eg6   V P                  ^8X  Ed   \        V\        4      '       Ed   V P                  V^,          ,          p\        V4      '       d+   VP                  ^8X  d   \        P                  ! V^ R7      pM\        V4      '       g   V.p\        V4      ^ 8X  d   V P                  RR7      # V P                  ^ ,          P                  pVP                  ^8X  EdA   WC,          pV P                  ^ W44       \        V4      p\         P"                  ! V^,          4      '       d   ^ pM;\        V4      ^8  d   \%        R4      pM\        P&                  ! \        V4      4      pWQ^&   V^ ,          p\        V\        P                  4      '       d*   VP                  ^8X  d   \        P                  ! V^R7      p\        V\        P                  4      '       d   \        V4      ^ 8X  d   V # Wa^ &   V P                  ^ ,          P)                  \        V4      V4       V # V P                  RR7      p V P+                  RWR7      # )	zQ
Set values with indexer.

For SingleBlockManager, this backs s[indexer] = value
zCannot set values with ndim > r   FdeepNTsetitem)r%  r?  )rT   rV   ndarrayrm   r   r   r   r   r   squeezerM   copyr`   r   _iset_split_blocklistr   
is_integerr   aranger  r(  )rl   r%  r?  blk_locr   col_indexerrow_indexers   &&&    rI   r  BaseBlockManager.setitem%  s     grzz**w||dii/G=dii[IJJ%%a(( yyA~*We"<"<,,wqz2((W\\Q-> jjq9G%g..&iGw<1$99%900Q..;;!##_F**7 #7mG~~gaj11&'W)&+Dk&(iiG&=!,AJ")!*K!+rzz::{?O?OST?T&(jj1&E!+rzz::s;?OST?T  $!,AJKKN**5>5AK 99$9'Dzz)WzBBrK   c                    V ^8  d   QhRRRR/# )rD   nre   rF   r   rG   )rH   s   "rI   rJ   rf   ^  s     ' 'c 'd 'rK   c                	(    V P                  R VR7      # )diff)r  r8  )rl   r  s   &&rI   r  BaseBlockManager.diff^  s    zz&Az&&rK   c                    V ^8  d   QhRRRR/# )rD   errorsrW   rF   r   rG   )rH   s   "rI   rJ   rf   b  s     @ @C @d @rK   c                	(    V P                  R WR7      # )astype)rP   r  r8  )rl   rP   r  s   &&&rI   r  BaseBlockManager.astypeb  s    zz(%z??rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf   e  s     % % %rK   c                	$    V P                  R 4      # )convertr8  rk   s   &rI   r  BaseBlockManager.converte  s    zz)$$rK   c                	&    V P                   ! R/ VB # )convert_dtypes)r  r8  ra  s   &,rI   r  BaseBlockManager.convert_dtypesh  s    zz5f55rK   na_repnanquotingc                    V ^8  d   QhRRRR/# )rD   r  rW   rF   r   rG   )rH   s   "rI   rJ   rf   k  s     
 
=@
	
rK   c          	     0    V P                  RVVVVVR7      # )ze
Convert values to native types (strings / python objects) that are used
in formatting (repr / csv).
get_values_for_csv)r  r  float_formatdate_formatdecimalr8  )rl   r  r  r  r  r  s   &$$$$$rI   r  #BaseBlockManager.get_values_for_csvk  s,     zz %#  
 	
rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf   |  s     @ @T @rK   c                    \         ;QJ d&    R V P                   4       F  '       g   K   R# 	  R# ! R V P                   4       4      # )z>Whether any of the blocks in this manager are extension blocksc              3  8   "   T F  qP                   x  K  	  R # 5irh   is_extensionr   r  s   & rI   r   7BaseBlockManager.any_extension_types.<locals>.<genexpr>~  s     ?;%%%;r   TF)r   r`   rk   s   &rI   any_extension_types$BaseBlockManager.any_extension_types{  s5     s?4;;?ss?s?s?4;;???rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s       rK   c                t    \        V P                  4      ^8X  d   V P                  ^ ,          P                  # R# )z8return a boolean if we are a single block and are a viewF)rM   r`   is_viewrk   s   &rI   r  BaseBlockManager.is_view  s.     t{{q ;;q>))) rK   c                    V ^8  d   QhRRRR/# )rD   	predicater   rF   r   rG   )rH   s   "rI   rJ   rf     s     % %( %t %rK   c                	    V P                    Uu. uF  q!! VP                  4      '       g   K  VNK   	  ppV P                  V4      # u upi rh   )r`   r   _combine)rl   r  r   r`   s   &&  rI   _get_data_subset!BaseBlockManager._get_data_subset  s<    !%F#	#**0E##F}}V$$ Gs
   AAc                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s     ) )t )rK   c                   . pV P                    Fe  pVP                  \        8X  d   VP                  V4       K+  VP                  '       g   K?  VP                  R VP                  4        4       4       Kg  	  V P                  V4      # )z[
Select blocks that are bool-dtype and columns from object-dtype blocks
that are all-bool.
c              3  L   "   T F  qP                   '       g   K  Vx  K  	  R # 5irh   )is_boolr   r   s   & rI   r   1BaseBlockManager.get_bool_data.<locals>.<genexpr>  s     !J|zz""|s   $
$)r`   rP   rp   append	is_objectextend_splitr  )rl   
new_blocksr   s   &  rI   get_bool_dataBaseBlockManager.get_bool_data  se     
;;CyyD !!#&!!!Jszz|!JJ  }}Z((rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s     - -$ -rK   c                	    V P                    Uu. uF  qP                  '       g   K  VNK  	  pp\        V4      \        V P                   4      8X  d   V # V P                  V4      # u upi rh   )r`   
is_numericrM   r  )rl   r   numeric_blockss   &  rI   get_numeric_data!BaseBlockManager.get_numeric_data  sR    )-G###G~#dkk"22 K}}^,, Hs
   A%A%c               $    V ^8  d   QhRRRRRR/# )rD   r`   r   indexzIndex | NonerF   r   rG   )rH   s   "rI   rJ   rf     s!     8 8{ 8< 84 8rK   c                T   \        V4      ^ 8X  dt   V P                  ^8X  dS   Ve   V P                  R,          V.pM'V P                  R,          .V P                  R,          OpV P	                  V4      # V P	                  4       # \
        P                  ! \
        P                  ! V Uu. uF  qDP                  P                  NK  	  up4      4      p\        P                  ! WPP                  ^ ,          4      p. pV FP  pVP                  RR7      p\        WhP                  P                  ,          4      Vn        VP!                  V4       KR  	  \#        V P                  4      pVe   W#R&   V P                  P%                  V4      V^ &   \'        V 4      P)                  Ws4      # u upi )z$return a new manager with the blocksr   r   Fr  )rM   rm   r{   rb   r   rV   sortconcatenater$  as_arrayr   get_reverse_indexerr   r  r   r%  r  r  r   r   r   )	rl   r`   r  rb   r0  r%  inv_indexerr  r   s	   &&&      rI   r  BaseBlockManager._combine  sE   v;!yyA~$ JJrNE2D JJrN;TYYr];Dt,,??$$ ''"..v)Nv!***=*=v)NOP--gzz!}E"$
AU#B([[5H5H)IJBKb! 
 DIIH**//'*QDz%%j77 *Os   (F%c                   V ^8  d   QhRR/# rd   rG   )rH   s   "rI   rJ   rf     s          rK   c                	,    \        V P                  4      # rh   r   rk   s   &rI   nblocksBaseBlockManager.nblocks  s    4;;rK   c                    V ^8  d   QhRRRR/# )rD   r  rp   rF   r   rG   )rH   s   "rI   rJ   rf     s      D T rK   c               l   V P                    Uu. uF  q"P                  4       NK  	  ppV P                  RVR7      pW4n         V P                  ^8  dE   V P                  pVe5   VP                  4       Vn        V P                  P                  4       Vn        V'       d   VP                  4        V# u upi )z
Make deep or shallow copy of BlockManager

Parameters
----------
deep : bool, string or None, default True
    If False, return a shallow copy (do not copy data)

Returns
-------
BlockManager
r  r  )rb   r*  r(  rm   r]   r  r^   rj  )rl   r  r   new_axesresr   s   &$    rI   r  BaseBlockManager.copy  s     )-		2	"GGI	2jjdj+99q=\\F!$kkm#}}113$$&
 3s   B1c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s       rK   c                	    R # r   rG   rk   s   &rI   is_consolidated BaseBlockManager.is_consolidated  r   rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   rf     s      T rK   c                    V P                  4       '       d   V # \        V 4      ! V P                  V P                  RR7      pRVn        VP                  4        V# )zJ
Join together blocks having same dtype

Returns
-------
y : BlockManager
Frt   )r  r   r`   rb   rr   rj  )rl   rk  s   & rI   consolidateBaseBlockManager.consolidate  sM     !!K $ZTYYG#
!	rK   c                   V ^8  d   QhRR/# rD   rF   ru   rG   )rH   s   "rI   rJ   rf      s      d rK   c                	    R # rh   rG   rk   s   &rI   rj  %BaseBlockManager._consolidate_inplace   s    rK   c               (    V ^8  d   QhRRRRRRRR/# )	rD   	new_indexr.   r   r=   
only_slicerp   rF   r   rG   )rH   s   "rI   rJ   rf     s2     
 

 

 
 

rK   c                v    V P                   V,          P                  V4      w  rV P                  VVVVVR7      # )z$
Conform data manager to new index.
)r   rz  r  )rb   reindexreindex_indexer)rl   r  r   rz  r  r%  s   &&&&& rI   reindex_axisBaseBlockManager.reindex_axis  sF     "YYt_44Y?	##!! $ 
 	
rK   use_na_proxyc               4    V ^8  d   QhRRRRRRRRR	RR
RRR/# )rD   new_axisr.   r%  znpt.NDArray[np.intp] | Noner   r=   
allow_dupsrp   r  r  rF   r   rG   )rH   s   "rI   rJ   rf     sY     M MM -M 	M M M M 
MrK   c          	        VfU   WP                   V,          J d   V # V P                  RR7      p\        V P                   4      Vn         WP                   V&   V# \        V\        P
                  4      '       g   Q hV'       g#   V P                   V,          P                  V4       W0P                  8  d   \        R4      hV^ 8X  d    \        V P                  VVVVR7      4      p	M=V P                   U
u. uF'  p
T
P                  T^Ve   TMV
P                  R7      NK)  	  p	p
\        V P                   4      pWV&   V P                  ^8X  d3   V P                   ^V,
          ,          P                  4       V^V,
          &   \        V 4      P                  W4      pV^8X  d?   V P                   P                  4       Vn        V P$                  P                  4       Vn        V# u up
i )at  
Parameters
----------
new_axis : Index
indexer : ndarray[intp] or None
axis : int
fill_value : object, default None
allow_dups : bool, default False
only_slice : bool, default False
    Whether to take views, not copies, along columns.
use_na_proxy : bool, default False
    Whether to use an np.void ndarray for newly introduced columns.

pandas-indexer with -1's only.
Fr  #Requested axis not found in manager)rz  r  r  )r   rz  )rb   r  r  rT   rV   r  _validate_can_reindexrm   
IndexError_slice_take_blocks_ax0r`   take_ndrz  r*  r   r   r   r]   r   r^   )rl   r  r%  r   rz  r  r  r  resultr  r   r  new_mgrs   &&&&&&&$     rI   r   BaseBlockManager.reindex_indexer  s   4 ?99T?*YYEY*Ftyy/FK (KKM '2::.... IIdO11':99BCC19++))!-	 , J"  ;;	 'C &0&<
#..	   '  	 		?!99>!%1t8!4!9!9!;HQXt*((>19"kk..0GO#||002G+	s   4-G ref_inplace_opc          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rD   slice_or_indexerslice | np.ndarrayr  rp   r  r  rF   zGenerator[Block]rG   )rH   s   "rI   rJ   rf   g  sC     A! A!,A! 	A! A! A! 
A!rK   c          	   #    "   V\         P                  Jp\        WP                  ^ ,          VR7      w  rxp	V P                  '       Ed   V P
                  ^ ,          p
VR8X  d5   V	^ 8X  d   R# \        \        ^ V	4      4      pV
P                  WR7      x  R# V'       d   V P                  ^8X  d   V'       d   Vf   V
P                  pV'       gN   V'       dF   \        V4       F4  w  rV
P                  \        W^,           4      \        V4      VR7      x  K6  	  R# \        \        ^ V	4      4      pV
P                  V^ VVR7      x  R# VR8X  d(   V P                  V,          pV P                  V,          pMH\        P                  ! V P                  VRVR7      p\        P                  ! V P                  VRVR7      pV'       * p\         P"                  ! VVR7       EF  w  ppVR8X  d   V P%                  VVVR	7      x  K&  V P
                  V,          p
V
P&                  '       gW   V
P(                  '       gE   R
pV F:  pV
P+                  VR7      p\        \        VV^,           4      4      Vn        Vx  K<  	  K  VVP.                  ,          p\1        \3        V4      VP1                  4       ^,           4      p\         P4                  ! VV4      p\7        V\        4      '       d   V
P                  VVR7      pVx  EK%  V'       dO   \9        VVRR7       F9  w  r\        W^,           4      p\        V4      pV
P                  VVR7      pVx  K;  	  EK{  V
P                  V^ VR7      pVx  EK  	  R# 5i)a<  
Slice/take blocks along axis=0.

Overloaded for SingleBlock

Parameters
----------
slice_or_indexer : slice or np.ndarray[int64]
fill_value : scalar, default lib.no_default
only_slice : bool, default False
    If True, we always return views on existing arrays, never copies.
    This is used when called from ops.blockwise.operate_blockwise.
use_na_proxy : bool, default False
    Whether to use an np.void ndarray for newly introduced columns.
ref_inplace_op: bool, default False
    Don't track refs if True because we operate inplace

Yields
------
Block : New Block
)
allow_fillr   N)new_mgr_locs)r
  r  )r   r
  rz  )rz  r	  group)r   rz  r  Fr  Tr  )r   r
  r  )r   r{  _preprocess_slice_or_indexerr   r   r`   r   r   getitem_block_columnsrm   rz  r   r   r   r   r   libinternalsget_blkno_placements_make_na_block_can_consolidate_validate_ndimr  r$  r%  maxrM   maybe_indices_to_slicerT   r  )rl   r  rz  r  r  r  r	  sl_typeslobjsllenr   r   r   mlr   r   r  r   r$  r  mgr_locnewblktakermax_lenr   slcs   &&&&$$                    rI   r  'BaseBlockManager._slice_take_blocks_ax0g  s    <  s~~5
 <jjm
!
 ++a.C'! A:#E!UO4///GG499>*"4!$J!j "+5!1!77!"1f-)7):+9 8   "2  (a8B++%'#-	 &   g[['Fll5)G]]UrjF mmezG +@@uUUOE8{ ))&)!- *   kk%( +++C4F4F4F
 !D#+!$t!4*8wRS9T*U$ $, $H$4$45E!#h-qAG66ugFE!%// 66u86T # &)%FEA"'q5/C!/!3B!$!:!:3R!:!PB"$H &G ![[QX[N [  Vs3   BM:M:8M:M:EM:+M:=CM:A-M:c               $    V ^8  d   QhRRRRRR/# )rD   r   r   r  rp   rF   r1   rG   )rH   s   "rI   rJ   rf     s$     ? ?'?HL?	?rK   c                	   V'       dZ   Ve   Q h\        V4      V P                  ^,          3p\        P                  ! V\        P                  R7      p\        WQ^R7      pV# Ve   V\        P                  J d   \        P                  p\        V P                   Uu. uF  qwP                  NK  	  up4      pVeG   \        P                  ! VP                  \        P                  4      '       d   VP                  V4      p\        V4      V P                  ^,          3p\        V4      w  r\        WV4      p	\        WR7      # u upi )NrX   rm   r   )rM   r   rV   emptyvoidr2   r  rN   r`   rP   
issubdtyper   floatingr   make_na_arrayr8   )
rl   r   rz  r  r   valsr   r   rP   block_valuess
   &&&&      rI   r  BaseBlockManager._make_na_block  s    
 %%%^TZZ]3E88E1DD!4BIrvv!5J%DKK&HKSyyK&HIE R]]5::r{{%K%K"ZZ
3
YA/3J?$U:>L>> 'Is   Ec               (    V ^8  d   QhRRRRRRRR/# )	rD   r%  r\   r   r=   verifyrp   rF   r   rG   )rH   s   "rI   rJ   rf     s2     
 
%
 
 	

 

rK   c                    V P                   V,          p\        WVR7      pV P                  V,          P                  V4      pV P	                  VVVRR7      # )a  
Take items along any axis.

indexer : np.ndarray[np.intp]
axis : int, default 1
verify : bool, default True
    Check that all entries are between 0 and len(self) - 1, inclusive.
    Pass verify=False if this check has been done by the caller.

Returns
-------
BlockManager
)r,  T)r  r%  r   r  )r   r-   rb   r   r  )rl   r%  r   r,  r  r   s   &&&&  rI   r   BaseBlockManager.take  sZ    * JJt'6BYYt_))'2
##	 $ 
 	
rK   rG   r   rh   )FF)raise)NF)NFF)r   T)Er  
__module____qualname____firstlineno____doc__	__slots____annotations__propertyrm   rw   r   r|   r   classmethodr   r   r   r   r   r   r   r   r{   r   r   r   r   r   r   r  r  r  r(  r'   r>  rJ  rQ  rV  r[  rb  ri  ro  rt  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rj  r  r  r   r{  r  r  r   __static_attributes__rG   rK   rI   r[   r[      s    0d I!!""
" " "   2 2 " "    4$%
    % %  3;
(U( 3 3
( ) )"2h . . 

 

 
 
 
 
 6 6 

 

 6 6  (DHK7Cr'@%6
CH
RV
  @ @  %)"-8<    <" 
 
(M #M Md >> 	A! #A!  %A! A!F?2
 
rK   r[   c                      ] tR tRtRt^tRBR R lltR R lt]R R l4       t	R	 R
 lt
RBR R lltR R lt]R R l4       tRCR R lltRDR R lltRER R lltRFR R lltRER R lltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+R,/R- R. lltR/ R0 ltR1 R2 ltRR]P>                  3R3 R4 llt R]P>                  3R5 R6 llt!R7 R8 lt"R9 R: lt#R; R< lt$]R= R> l4       t%]R? R@ l4       t&RAt'R# )GBlockManageri$  z(
BaseBlockManager that holds 2D blocks.
c               (    V ^8  d   QhRRRRRRRR/# )	rD   r`   zSequence[Block]rb   zSequence[Index]rt   rp   rF   ru   rG   )rH   s   "rI   rJ   BlockManager.__annotate__.  s2     % %% % 	%
 
%rK   c                	    V'       d]   V FD  pV P                   VP                   8w  g   K   \        R VP                    RV P                    R24      h	  V P                  4        R# R# )zNumber of Block dimensions (z) must equal number of axes ()N)rm   AssertionError_verify_integrity)rl   r`   rb   rt   r  s   &&&& rI   rw   BlockManager.__init__.  sd       99

*(6uzzl C++/99+Q8    ""$ rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<  D  s      4 rK   c                	   V P                   p\        R  V P                   4       4      pV P                   FK  pVP                   R,          VR,          8w  g   K$  \        W#P                   R,          V P                  4       KM  	  \        V P                  4      V8w  d%   \        R\        V P                  4       RV 24      hR# )c              3  L   "   T F  p\        VP                  4      x  K  	  R # 5irh   )rM   r$  )r   xs   & rI   r   1BlockManager._verify_integrity.<locals>.<genexpr>F  s     =AAJJ   "$r   zINumber of manager items must equal union of block items
# manager items: z, # tot_items: N)r   sumr`   raise_construction_errorrb   rM   r{   r?  )rl   	mgr_shape	tot_itemsr  s   &   rI   r@  BlockManager._verify_integrityD  s    JJ	===	[[E{{2)B-/(KKOTYYO ! tzz?i' 114TZZ0A B'[*  (rK   c               $    V ^8  d   QhRRRRRR/# r   rG   )rH   s   "rI   rJ   r<  R  s!     9 9 9K 9D 9rK   c                    V ! WRR7      # zJ
Constructor for BlockManager and SingleBlockManager with same signature.
Fr  rG   r   s   &&&rI   r   BlockManager.from_blocksQ  s    
 6%88rK   c                    V ^8  d   QhRRRR/# )rD   locre   rF   r   rG   )rH   s   "rI   rJ   r<  [  s     G> G>3 G>#5 G>rK   c                   \        V P                  4      ^8X  d   V P                  ^ ,          P                  \        R4      V34      p\	        \        ^ \        V4      4      4      p\        VV^V P                  ^ ,          P                  R7      p\        W@P                  ^ ,          P                  4       4      # \        V P                   Uu. uF  qUP                  NK  	  up4      p\        V 4      p\        V\        4      '       d   \        P                  ! V\         R7      pM"\        P                  ! WvR7      p\#        V4      pV P                   F  p\%        VP&                  4       F  w  rVP                  W34      p
VP                  P(                  R9   d   \*        P,                  ! V
4      '       du   \/        V
4      '       dd   \        VP                  \0        4      '       dD   VP                  P(                  R8X  d   \         pM\        P2                  pVP5                  V4      pWV	&   K  	  K  	  \        V\        4      '       d#   VP7                  4       pVP9                  W&R7      p\	        \        ^ \        V4      4      4      p\        W#^R7      p\        W@P                  ^ ,          P                  4       4      # u upi )z
Return the array corresponding to `frame.iloc[loc]`.

Parameters
----------
loc : int

Returns
-------
np.ndarray or ExtensionArray
Nr   rm   r   rX   iubr0  r   rm   )rM   r`   igetr   r   r7   r   r   rb   r*  rN   rP   rT   r"   rV   r#  rS   r+   r   r$  kindr   is_floatr'   r    float64r  construct_array_type_from_sequence)rl   rR  r  r   r  r   rP   r  r   rlitem	new_dtyper   s   &&           rI   fast_xsBlockManager.fast_xs[  s    t{{q  37++a.2E2Etc"3F  aV 56B[[^((	E &eYYq\->->-@AA!"D99"DEIe^,,
 XXav.FXXa-F3F;F;;C #3<<0xx)LL%%.T**T

"399.>?? ||((C/$*	$&JJ	#]]95F!r
% 1 . e^,,,,.C'''<FE!S[12&Q7!%1):):)<==W #Es   Kc               $    V ^8  d   QhRRRRRR/# )rD   r   re   	track_refrp   rF   r   rG   )rH   s   "rI   rJ   r<    s"     ; ;c ;d ;6H ;rK   c                n   V P                   V P                  V,          ,          pVP                  V P                  V,          4      p\	        \        ^ \        V4      4      4      p\        V4      ! YE^V'       d   VP                  MRR7      p\        W`P                  ^,          P                  4       4      # )z*
Return the data as a SingleBlockManager.
NrT  )r`   r   rW  r   r   r   rM   r   r   r   rb   r*  )rl   r   rc  r  r   r   r   s   &&&    rI   rW  BlockManager.iget  s     DKKN+DLLO, E!S[12%[qYuzzD
 ""iil&7&7&9::rK   c                    V ^8  d   QhRRRR/# )rD   r   re   rF   r<   rG   )rH   s   "rI   rJ   r<    s     
 
S 
Y 
rK   c                    V P                   V P                  V,          ,          pVP                  V P                  V,          4      pV# )z
Return the data for column i as the values (ndarray or ExtensionArray).

Warning! The returned array is a view but doesn't handle Copy-on-Write,
so this should be used with caution.
)r`   r   rW  r   )rl   r   r  r   s   &&  rI   iget_valuesBlockManager.iget_values  s5     DKKN+DLLO,rK   c                   V ^8  d   QhRR/# )rD   rF   zlist[np.ndarray]rG   )rH   s   "rI   rJ   r<    s      / rK   c                *   R.\        V P                  4      ,          pV P                   Fe  pVP                  pVP                  P                  4       pVP                  ^8X  d   WAV^ ,          &   KG  \        V4       F  w  rVWE,          W&   K  	  Kg  	  V# )z
Used in the JSON C code to access column arrays.
This optimizes compared to using `iget_values` by converting each

Warning! This doesn't handle Copy-on-Write, so should be used with
caution (current use case of consuming this in the JSON code is fine).
N)rM   r{   r`   	_mgr_locsarray_values_values_for_jsonrm   r   )rl   r  r   r$  r   r   rR  s   &      rI   column_arraysBlockManager.column_arrays  s~     ,0&3tzz?*B;;C}}H%%668F{{a&,x{# (1FA"()FK 2  rK   FNc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rD   rR  int | slice | np.ndarrayr?  r<   r<  rp   r   BlockValuesRefs | NonerF   ru   rG   )rH   s   "rI   rJ   r<    sC     T- T-%T- T- 	T-
 %T- 
T-rK   c           	     
  aaa V P                   f"   V P                  ^8  d   V P                  4        \        SP                  4      pV'       g`   SP                  ^8X  d   SP
                  oM\        S^R7      oSP                  R,          V P                  R,          8w  d   \        R4      h\        P                  ! V4      '       dk   \        \        V4      pV P                  V,          pV P                  V,          p\        VP                   4      ^8X  d   V P#                  VSVVVSR7      # V.pV'       d   V3R lpMV3R lpV P                  V,          p	V P$                  V,          P'                  4       p
. p. p. o\(        P*                  ! V	RR	7       EF  w  rV P                  V,          pWP,                  ,          pV'       dd   VP/                  S4      '       dM   V P1                  V4      '       g   V P3                  WV! V4      SR
7       K}  VP5                  W! V4      4       K  VP7                  VP8                  P:                  V,          4       VP7                  V4       \        V4      \        VP8                  4      8X  d   SP7                  V4       EK
  V P3                  WSR
7       EK   	  S'       Ed    \<        P>                  ! V P@                  \<        PB                  R7      pRVS&   \<        PD                  ! V P@                  \<        PF                  R7      pVPI                  R4       \<        PJ                  ! V P@                  \        S4      ,
          4      VV( &   VV PL                  ,          V n&        \N        ;QJ d*    . V3R l\Q        V P                  4       4       F  NK  	  5M#! V3R l\Q        V P                  4       4       4      V n        V'       EdP   \<        PR                  ! V4      p\        V4      p. pV'       dj   VPU                  VV3R lV 4       4       \<        PJ                  ! V4      \        V P                  4      ,           V PL                  V&   ^ V P                   V&   MV^ ,          P7                  VR,          4      pVP7                  \W        V! V4      \Y        V4      SR7      4       \        V P                  4      V PL                  V&   \<        PJ                  ! V4      V P                   V&   V ;P                  \O        V4      ,          un        RV n-        R# R# )zj
Set new item in-place. Does not consolidate. Adds new Block if not
contained in the current set of items
Nr"  r   z9Shape of new values must be compatible with manager shape)r<  r   r   r   c                   < S# rh   rG   r   r?  s   &rI   value_getitem(BlockManager.iset.<locals>.value_getitem  s    rK   c                *   < SV P                   ,          # rh   )r%  rv  s   &rI   rw  rx    s    Y..//rK   Tr  r   rX   c              3  P   <"   T F  w  rV\        S4      9  g   K  Vx  K  	  R # 5irh   )set)r   r   r   removed_blknoss   &  rI   r   $BlockManager.iset.<locals>.<genexpr>C  s%       "8ASEX<X"8s   &
&c              3  r   <"   T F,  p\        S\        \        W^,           4      4      SR7      x  K.  	  R# 5i)r   r   r   r   N)r8   r   r   )r   r  r   r?  s   & rI   r   r~  P  s=      " $. !$"0w!1L"M! 
 $.s   47r  Fr  ).r^   rm   r   r   rP   Tr3   r   r?  r   r  r   re   r   r`   rM   rl  _iset_singler   r  r  r  r%  should_storer   r  set_inplacer  r$  r  rV   zerosr  bool_r#  intpfillr  r]   r   r   r  r  r8   r   rq   )rl   rR  r?  r<  r   value_is_extension_typer   r   rw  r   r   unfit_mgr_locsunfit_val_locsblkno_lval_locsblk_locs
is_deleted
new_blknos
unfit_idxrunfit_countr  unfit_val_itemsr}  s   &&f&f                 @rI   isetBlockManager.iset  s    == TYY],,. #6ekk"B&zzQ*5q9{{2$**R.0$O  >># sC.CKK$E++e$C3==!Q&((# )   %C #
0 S!,,s#((*!-!B!B6QU!V!VG++g&C//0H3++E2233G<<**=+B +  OOHmH.EF%%cll&;&;H&EF%%h/ x=C$55"))'2 **74*H- "W0 >$,,bhh?J)-J~&$,,bgg>JOOB&(iis>?R0R&SJ
{#%dll3DL%  "+DKK"8 %%  "+DKK"8  DK >7Jj/K&(J& !! " $."  ,.99[+ACDT+TZ(,-j) #1"3":":>";M"N!! ,_="0"<! ,/t{{+;Z(,.IIk,Bj)KK5,,K (-D$O rK   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rD   r  re   r  znp.ndarray | list[int]r?  zArrayLike | Noner   rs  rF   ru   rG   )rH   s   "rI   rJ   r<  p  s<     2> 2>2> )2>  	2>
 %2> 
2>rK   c                h   V P                   V,          pV P                  f   V P                  4        \        VP	                  V4      4      pVe6   VP
                  P                  V,          p\        V\        V4      VR7      pMV^ ,          p\        VR,          4      p\        V P                   4      p	. V P                   RV OVNV P                   V^,           R OVO5p
Wn         V'       g   Ve   R# \        P                  ! \        V4      4      V P                  VP
                  P                  &   \        V4       Fn  w  r\        P                  ! \        V4      4      V P                  VP
                  P                  &   W,           V P                  VP
                  P                  &   Kp  	  R# )a  Removes columns from a block by splitting the block.

Avoids copying the whole block through slicing and updates the manager
after determining the new block structure. Optionally adds a new block,
otherwise has to be done by the caller.

Parameters
----------
blkno_l: The block number to operate on, relevant for updating the manager
blk_locs: The locations of our block that should be deleted.
value: The value to set as a replacement.
refs: The reference tracking object of the value to set.
Nrz  r   )r`   r^   r   r   deleter$  r  r8   r   rM   rV   r  r%  r   r]   )rl   r  r  r?  r   r   nbs_tuplocsfirst_nb	nr_blocks
blocks_tupr   r   s   &&&&&        rI   r  BlockManager._iset_split_blockp  s[   ( kk'"== ,,.

8,-<<((2D#E>$+?dKHqzHGBK(G$	
[['"

 [[1'
 	

 !5,3599S]3Kh''//0w'EA133r71CDMM"++--.01DLL,,- (rK   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )rD   rR  re   r?  r<   r<  rp   r   r   r1   r   rs  rF   ru   rG   )rH   s   "rI   rJ   r<    sP        	
   % 
rK   c                \   V'       df   VP                  V4      '       dO   V P                  V4      '       * pV P                  V,          pVP                  \	        W^,           4      W'R7       R# \        W%P                  VR7      p	V P                  p
. V
RV OV	NW^,           R O5pWn        R# )z
Fastpath for iset when we are only setting a single position and
the Block currently in that position is itself single-column.

In this case we can swap out the entire Block and blklocs and blknos
are unaffected.
)r  Nr   r   )r  r   r   r  r   r8   rl  r`   )rl   rR  r?  r<  r   r   r   r  r#  r   
old_blocksr  s   &&&&&&&     rI   r  BlockManager._iset_single  s    $ s''..33E::D<<$DOOE$q15OD%==tD[[
Hz&5)H2H
19;0GH
 rK   c               (    V ^8  d   QhRRRRRRRR/# )	rD   rR  re   idxrr  inplace_onlyrp   rF   ru   rG   )rH   s   "rI   rJ   r<    s2     @ @@5@LP@	@rK   c                   V P                  V4      '       g   V P                  V,          pV P                  V,          pV P                  V,          P                  pVP
                  ^8X  d   VP                  4       pM	Wv.,          pV P                  WV.V4       V P                  VRR7      pV'       d   VP                  W#4       R# VP                  V3V4      p	V P                  WP                  P                  RR7       R# )z
Set values ("setitem") into a single column (not setting the full column).

This is a method on the BlockManager level, to avoid creating an
intermediate Series at the DataFrame level (`s = df[loc]; s[idx] = value`)
F)rc  T)r<  N)r   r   r   r`   r   rm   r  r  rW  setitem_inplacer  r  _block)
rl   rR  r  r?  r  r   r  r   col_mgrr  s
   &&&&&     rI   column_setitemBlockManager.column_setitem  s     %%c**KK$Ell3'G[['..F{{a  	*""5)V< ))C5)1##C/oosfe4GIIc>>00$I?rK   c               (    V ^8  d   QhRRRRRRRR/# )	rD   rR  re   r^  r   r?  r<   rF   ru   rG   )rH   s   "rI   rJ   r<    s(     1 1# 1X 1i 1t 1rK   c                   V P                   P                  W4      pVP                  ^8X  d@   VP                  p\	        V4      ^8  d#   \        RVP                  P                   24      hM\        W0P                  R7      p\        \        W^,           4      4      p\        W6VR7      p\	        V P                  4      '       gZ   \        P                  ! ^ .\        P                  R7      V n        \        P                  ! ^ .\        P                  R7      V n        M"V P#                  V4       V P%                  V4       WPP&                  ^ &   V ;P                  V3,          un        RV n        \+        R4      '       dK   \-        R V P                   4       4      ^d8  d(   \.        P0                  ! R\2        \5        4       R	7       R
# R
# R
# )z
Insert item at selected position.

Parameters
----------
loc : int
item : hashable
value : np.ndarray or ExtensionArray
refs : The reference tracking object of the value to set.
z-Expected a 1D array, got an array with shape r"  r  rX   Fperformance_warningsc              3  B   "   T F  qP                   '       * x  K  	  R # 5irh   r  r  s   & rI   r   &BlockManager.insert.<locals>.<genexpr>
  s     Du****s   a   DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`)
stacklevelN)r{   insertrm   r  rM   r   r   r3   r   r   r8   r`   rV   r   r  r^   r]   _insert_update_mgr_locs!_insert_update_blklocs_and_blknosrb   rq   r   rH  warningswarnr   r   )rl   rR  r^  r?  r   r  r   r  s   &&&&&   rI   r  BlockManager.insert  sU    ::$$S/::?GGE5zA~ CEGGMM?S  
 'u99=EE#Qw/0EdC4;;HHaS8DM88QCrww7DL((-2237		!x#(  -..DDDsJMMW #+- K /rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<    s     
? 
?d 
?rK   c                    \         P                  ! V P                  VR 4      P                  4       ^ ,          pV F6  pV P                  V,          pVP
                  P                  V4      Vn        K8  	  R# )zm
When inserting a new Block at location 'loc', we increment
all of the mgr_locs of blocks above that by one.
N)rV   bincountr   nonzeror`   rl  increment_above)rl   rR  r   r   r   s   &&   rI   r  $BlockManager._insert_update_mgr_locs  sY     T[[./779!<E++e$CMM99#>CM rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<  !  s     & & &rK   c                ~   WP                   P                  ^ ,          8X  db   \        P                  ! V P                  ^ 4      V n        \        P                  ! V P
                  \        V P                  4      4      V n        R# V^ 8X  df   \        P                  ! ^ .V P                  .4      V n        \        P                  ! \        V P                  4      .V P
                  .4      V n        R# \        P                  ! V P                   V P                  V\        V P                  4      4      w  r#W n        W0n        R# )zS
When inserting a new Block at location 'loc', we update our
_blklocs and _blknos.
N)r   r   rV   r  r^   r]   rM   r`   r  r  update_blklocs_and_blknosr   )rl   rR  new_blklocsr  s   &&  rI   r  .BlockManager._insert_update_blklocs_and_blknos!  s     ,,$$Q''IIdmmQ7DM99T\\3t{{3CDDLAXNNQC+?@DM>>C,<+=t||*LMDL&2&L&Ldkk3DKK0@'#K (M%LrK   c                   V ^8  d   QhRR/# rD   rF   r:  rG   )rH   s   "rI   rJ   r<  7  s     D D, DrK   c                Z   \         P                  ! V P                  ^ ,          \         P                  R7      pRW!&   V( P	                  4       ^ ,          pV P                  VRRR7      pV P                  V( ,          pWPP                  ^,          .p\        V 4      ! \        V4      VRR7      # )z:
Delete selected locations, returning a new BlockManager.
rX   T)r  r  Fr  )
rV   r  r   r  r  r  r{   rb   r   r   )rl   r%  r  r  nbsnew_columnsrb   s   &&     rI   ideleteBlockManager.idelete7  s     XXdjjm288<
"
%%'*))%DQU)Vjj*-YYq\*Dz%*dUCCrK   c                    V ^8  d   QhRRRR/# rD   r7  r   rF   r   rG   )rH   s   "rI   rJ   r<  G  s      S  S8  S  SrK   c                   . pV P                    Ff  pVP                  '       d6   VP                  4        F  pVP                  V4      p\	        WR4      pK!  	  KJ  VP                  V4      p\	        WR4      pKh  	  \        V4      ^ 8X  d   ^ pM$V^ ,          P                  P                  R,          p\        V4      p\        V 4      P                  W P                  ^ ,          P                  4       V.4      # )z
Apply grouped reduction function blockwise, returning a new BlockManager.

Parameters
----------
func : grouped reduction function

Returns
-------
BlockManager
r  )r`   r  r  r(  r4   rM   r   r   r/   r   r   rb   r*  )rl   r7  r-  r   sbr2  nrowsr  s   &&      rI   grouped_reduceBlockManager.grouped_reduceG  s     &(;;C}}} **,B hhtnG$1'$IM ' ))D/ -g E  }"E!!$++11"5Ee$ Dz%%miil6G6G6I55QRRrK   c                    V ^8  d   QhRRRR/# r  rG   )rH   s   "rI   rJ   r<  i  s      8  rK   c                    V P                   ^8X  g   Q hV P                   Uu. uF  q"P                  V4      NK  	  pp\        ^4      p\	        V 4      P                  W0P                  V.4      pV# u upi )z
Apply reduction function blockwise, returning a single-row BlockManager.

Parameters
----------
func : reduction function

Returns
-------
BlockManager
)rm   r`   reducer/   r   r   r{   )rl   r7  r   
res_blocksr  r  s   &&    rI   r  BlockManager.reducei  sd     yyA~~26++>+3jj&+
>a t*((jj%5HI	 ?s   A0c                    V ^8  d   QhRRRR/# )rD   r  r:  rF   rG   )rH   s   "rI   rJ   r<  ~  s     8 8| 8, 8rK   c                    \        WV4      # )z?
Apply array_op blockwise with another (aligned) BlockManager.
)r:   )rl   r  array_ops   &&&rI   r:   BlockManager.operate_blockwise~  s     !h77rK   c               $    V ^8  d   QhRRRRRR/# )rD   rl   r:  r  rF   rp   rG   )rH   s   "rI   rJ   r<    s!     8 8L 8 8$ 8rK   c                "    \        W\        4      # ){
Used in .equals defined in base class. Only check the column values
assuming shape and indexes have already been checked.
)r9   r&   r  s   &&rI   r  BlockManager._equal_values  s    
 T,77rK   interpolationlinearc               $    V ^8  d   QhRRRRRR/# )rD   qsr.   r  r?   rF   r   rG   )rH   s   "rI   rJ   r<    s*     , , , -	,
 
,rK   c               F   V P                   ^8  g   Q h\        V4      '       g   Q hV P                  ^ ,          P                  4       \	        V\
        P                  R7      .pV P                   Uu. uF  qDP                  WR7      NK  	  pp\        V 4      ! WS4      # u upi )a/  
Iterate over blocks applying quantile reduction.
This routine is intended for reduction type operations and
will do inference on the generated blocks.

Parameters
----------
interpolation : type of interpolation, default 'linear'
qs : list of the quantiles to be computed

Returns
-------
BlockManager
rX   )r  r  )
rm   r   rb   r*  r.   rV   rZ  r`   quantiler   )rl   r  r  r  r   r`   s   &$$   rI   r  BlockManager.quantile  s    , yyA~~BIIaL%%'r)DE IM
HSLLBL< 	 
 Dz&++	
s   1Bc                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<    s     ; ; ;rK   c                f   VP                  V P                  4      pVP                  pVP                  '       * pV'       d9   VP                  ( P
                  ! VP                  !  pVP                  ^ R7      pM-\        P                  ! VP                  ^,          \        R7      p. p. p	\        V P                  4      ^ 8X  d   ^p
MB\        V4      \        V P                  4      ,          pV\        V4      8X  g   Q h\        V4      p
V P                   F  pVP                  pVP                  V
4      pVP!                  VVVVR7      w  ppVP#                  V4       V	P#                  V4       VP%                  4       \%        R V 4       4      8X  d   K  Q h	  W9,          p\'        WV.RR7      pV# )z
Return a BlockManager with all blocks unstacked.

Parameters
----------
unstacker : reshape._Unstacker
fill_value : Any
    fill_value for newly introduced missing values.

Returns
-------
unstacked : BlockManager
r  rX   )new_placementneeds_maskingc              3  L   "   T F  p\        VP                  4      x  K  	  R # 5irh   )rM   rl  r  s   & rI   r   'BlockManager.unstack.<locals>.<genexpr>  s     $H2S%6%6rG  Fr  )get_new_columnsr{   r  mask_allrP  reshape
full_shaper   rV   r  rp   rM   re   r`   r$  tile_for_unstack_unstackr  rH  r:  )rl   	unstackerrz  r  r  r	  
new_mask2Dr  r  columns_maskfactorfacr   r$  r  r`   rP  rk  s   &&&               rI   unstackBlockManager.unstack  sv     //

;''	"+++
 %>>/22I4H4HIJ&NNN2MHHY%9%9!%<DIM"$
)+tzz?aFk"S_4C#c(?"?XF;;C||H$55f=M<<++	 ( LFD f%% 88:$H$H!HHHH ( "/*I&>QVW	rK   c                   V ^8  d   QhRR/# )rD   rF   zGenerator[tuple[str, Self]]rG   )rH   s   "rI   rJ   r<    s     5 59 5rK   c              #     "   R p\         P                  ! \        V P                  VR7      VR7       F"  w  r#W P	                  \        V4      4      3x  K$  	  R# 5i)zm
Yield a tuple of (str(dtype), BlockManager)

Returns
-------
values : a tuple of (str(dtype), BlockManager)
c                ,    \        V P                  4      # rh   )rW   rP   )r  s   &rI   <lambda>+BlockManager.to_iter_dict.<locals>.<lambda>  s    C,rK   keyN)	itertoolsgroupbysortedr`   r  r  )rl   r  rP   r`   s   &   rI   to_iter_dictBlockManager.to_iter_dict  sH      -&..vdkks/KQTUMEtF|444 Vs   AAc               (    V ^8  d   QhRRRRRRRR/# )	rD   rP   np.dtype | Noner  rp   na_valuerS   rF   
np.ndarrayrG   )rH   s   "rI   rJ   r<    s8     J JJ J 	J
 
JrK   c                   \         P                  ! V4      ;'       d    \        V4      p\        V P                  4      ^ 8X  d7   \
        P                  ! V P                  \        R7      pVP                  4       # V P                  '       EdU   V P                  ^ ,          pV\         P                  Jd3   \         P                  ! VP                  R4      '       d
   V'       d   MRpVP                  '       d9   VP                  P!                  VVVR7      P#                  VP                  4      pMMV'       g$   \
        P$                  ! VP                  VR7      pM"\
        P&                  ! VP                  WR7      pV'       d3   VP                  P(                  R9   d   W5\        VP                  4      &   V'       g"   VP+                  4       pRVP,                  n        MV P1                  WR7      pV\         P                  J d    VP                  4       # VP                  P(                  R8X  d   V'       d    VP                  4       # W5\        V4      &   VP                  4       # )	a  
Convert the blockmanager data into a numpy array.

Parameters
----------
dtype : np.dtype or None, default None
    Data type of the return array.
copy : bool, default False
    If True then guarantee that a copy is returned. A value of
    False does not guarantee that the underlying data is not
    copied.
na_value : object, default lib.no_default
    Value to be used as the missing value sentinel.

Returns
-------
arr : ndarray
rX   r+  T)rP   r  r  )rP   r  mMFrP   r  )r   rY  r'   rM   r`   rV   r#  r   float	transposer   r{  is_np_dtyperP   r  r   to_numpyr  asarrayr   rX  r*  flags	writeable_interleave)rl   rP   r  r  
passed_nanr   r   s   &&&&   rI   r  BlockManager.as_array  s   0 \\(+>>X
t{{q ((4::U3C==?"++a.Cs~~- ??399c22zD
 jj))% *  '#))$	 
 jj59hhszzBciinn4(0D$%hhj&+		#"""BC s~~% }} YY^^s"z }} &S	N}}rK   c               $    V ^8  d   QhRRRRRR/# )rD   rP   r  r  rS   rF   r  rG   )rH   s   "rI   rJ   r<  D  s(     6 66 6 
	6rK   c                   V'       g/   \        V P                   Uu. uF  q3P                  NK  	  up4      p\        V4      p\        P
                  ! V P                  VR7      p\        P                  ! V P                  ^ ,          4      pV\        P                  ! R4      8X  dc   V\        P                  J dO   V P                   F<  pVP                  pVP                  V4      pWtVP                  &   ^WVP                  &   K>  	  V# V P                   F  pVP                  pVP                  '       d   VP                  P                  VVR7      pMVP                  V4      pWtVP                  &   V\        P                  Jd:   VP                  P                   R9   d   W$VP                  ,          \#        V4      &   ^WVP                  &   K  	  VP%                  4       '       g   \'        R4      hV# u upi )z\
Return ndarray from blocks with specified item order
Items must be contained in the blocks
rX   rS   r  r
  z'Some items were not contained in blocks)rN   r`   rP   rY   rV   r#  r   r  r   r{  r$  
get_valuesr%  r  r   r  rX  r'   r  r?  )rl   rP   r  r   r  itemmaskr]  r   s   &&&     rI   r  BlockManager._interleaveD  s     &&*kk2ksk2E  &$**E288DJJqM*BHHX&&8s~~+E{{\\nnU+%(rzz"'($	 #
 M;;CB
 jj))% * 
 nnU+!$2::s~~-#))..D2H08rzz"49-#$HZZ ! $ ||~~ !JKKQ 3s   G4c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r<    s     % % %rK   c                ^    V P                   '       g   V P                  4        V P                  # )z8
Return True if more than one block with the same dtype
)rq   _consolidate_checkrr   rk   s   &rI   r  BlockManager.is_consolidated  s(     '''##%$$$rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<    s     ( (D (rK   c                	,   \        V P                  4      ^8X  d   RV n        RV n        R# V P                   Uu. uF"  qP                  '       g   K  VP
                  NK$  	  pp\        V4      \        \        V4      4      8H  V n        RV n        R# u upi )r   TN)rM   r`   rr   rq   r  rP   r|  r   s   &  rI   r  BlockManager._consolidate_check  sr    t{{q $(D!'+D$'+{{K{6J6J)#)){K #Fs3v;/? ?#'  Ls   BBc                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r<    s     / /d /rK   c                	    V P                  4       '       g;   \        V P                  4      V n        R V n        R V n        V P                  4        R# R# )TN)r  _consolidater`   rr   rq   r   rk   s   &rI   rj  !BlockManager._consolidate_inplace  sB    ##%%&t{{3DK$(D!'+D$,,.	 &rK   c               $    V ^8  d   QhRRRRRR/# rD   mgrsz
list[Self]rb   ra   rF   r   rG   )rH   s   "rI   rJ   r<    s!      Z { t rK   c                8   ^ p. pV F}  pVP                    FN  pVP                  \        R4      4      pVP                  P	                  V4      Vn        VP                  V4       KP  	  V\        VP                  4      ,          pK  	  V ! \        V4      V4      pV# )z;
Concatenate uniformly-indexed BlockManagers horizontally.
N)	r`   slice_block_columnsr   rl  addr  rM   r{   r   )	r   r(  rb   offsetr`   r   r   r   r  s	   &&&      rI   concat_horizontalBlockManager.concat_horizontal  s    
  Czz ,,U4[9!||//7b! " c#))n$F  eFmT*rK   c               $    V ^8  d   QhRRRRRR/# r'  rG   )rH   s   "rI   rJ   r<    s&     T T: T[ TT TrK   c                    \        R4      h)z9
Concatenate uniformly-indexed BlockManagers vertically.
z.This logic lives (for now) in internals.concatri   )r   r(  rb   s   &&&rI   concat_verticalBlockManager.concat_vertical  s    
 ""RSSrK   )r^   r]   rr   rq   r`   r   )FN)NNrh   F)(r  r0  r1  r2  r3  rm   rw   r@  r7  r   r`  rW  rh  r6  ro  r  r  r  r  r  r  r  r  r  r  r:   r  r  r  r  r   r{  r  r  r  r  rj  r-  r1  r8  rG   rK   rI   r:  r:  $  s    D
%, 9 9G>R;
  6T-l2>h<@@1f
?&,D  SD*88, 08	,F;z5 "&>>	J\ "&>>6v%(/  * T TrK   r:  c                     ] tR tRtRt]R R l4       tRtRtR;t	Rt
R<R R llt]R R	 l4       t]R=R R ll4       tR R ltR>R R lltR tR R ltR R lt]R R l4       t]]R R l4       4       t]R R l4       t]R R l4       tR R ltR>R  R! llt]R" R# l4       t]R$ R% l4       tR& R' ltR( tR) t R* R+ lt!R, R- lt"]R. R/ l4       t#R0 R1 lt$R2 R3 lt%R4 t&R5 R6 lt'R7 R8 lt(R9 t)R:t*R
# )?r   i  zmanage a single block withc                   V ^8  d   QhRR/# )rD   rF   z
Literal[1]rG   )rH   s   "rI   rJ   SingleBlockManager.__annotate__  s      j rK   c                	    ^# r   rG   rk   s   &rI   rm   SingleBlockManager.ndim  s    rK   Tc               (    V ^8  d   QhRRRRRRRR/# )	rD   r  r1   r   r.   rt   rp   rF   ru   rG   )rH   s   "rI   rJ   r6    s2        	
 
rK   c                	&    V.V n         V3V n        R # rh   rb   r`   )rl   r  r   rt   s   &&&&rI   rw   SingleBlockManager.__init__  s     F	hrK   c               $    V ^8  d   QhRRRRRR/# r   rG   )rH   s   "rI   rJ   r6    s(     
? 
?
? 
? 
	
?rK   c                |    \        V4      ^8X  g   Q h\        V4      ^8X  g   Q hV ! V^ ,          V^ ,          RR7      # rO  r   r   s   &&&rI   r   SingleBlockManager.from_blocks  s=     6{a4yA~~6!9d1g>>rK   Nc               (    V ^8  d   QhRRRRRRRR/# )	rD   r   r<   r  r.   r   rs  rF   r   rG   )rH   s   "rI   rJ   r6    s,     	! 	!	!&+	!3I	!		!rK   c                    \        V4      p\        \        ^ \        V4      4      4      p\	        W^VR7      pV ! WR4      # )z>
Constructor for if we have an array that is not yet a Block.
rT  )r6   r   r   rM   r7   )r   r   r  r   r   r  s   &&&&  rI   
from_arraySingleBlockManager.from_array  s<     $E*E!SZ01%ADA5  rK   c                    V ^8  d   QhRRRR/# )rD   columnsr.   rF   r:  rG   )rH   s   "rI   rJ   r6    s     	J 	J 	J< 	JrK   c                
   V P                   ^ ,          p\        VP                  ^R7      p\        ^ 4      p\	        V4      ! W4^VP
                  R7      pWP                  ^ ,          P                  4       .p\        V.VRR7      # )z%
Manager analogue of Series.to_frame
r"  rT  F)rb   rt   )	r`   r3   r   r   r   r   rb   r*  r:  )rl   rE  r   r   r   new_blkrb   s   &&     rI   	to_2d_mgrSingleBlockManager.to_2d_mgr  sk     kk!n !4As)CACHHE1**,-WID5IIrK   c                    V ^8  d   QhRRRR/# r   rG   )rH   s   "rI   rJ   r6    s     7 73 7t 7rK   c                b    V P                   ^ ,          P                  P                  4       '       * # r   r   )rl   r   s   &&rI   r   $SingleBlockManager._has_no_reference  s$     ;;q>&&44666rK   c                	   V P                    Uu. uF  qP                  NK  	  ppV P                    Uu. uF)  qP                  VP                  P                  ,          NK+  	  pp\        V P                  4      pR RTRV P                    Uu. uF'  pRVP                  RVP                  P                  /NK)  	  up//pWBW53# u upi u upi u upi )0.14.1rb   r`   r   r$  )r`   r   r{   r$  r%  r  rb   )rl   r0  r)  block_items
axes_arrayextra_states   &     rI   __getstate__SingleBlockManager.__getstate__  s    *.++6+Q+6?C{{K{!zz!**"4"455{K$))_
 
![[( qxxQZZ5G5GH(
 AA! 7Ks   C/C-Cc                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r6    s      T rK   c                	  aa R  R lo\        V\        4      '       d   \        V4      ^8  d   RV^,          9   d   V^,          R,          pVR,           Uu. uF  p\        V4      NK  	  upV n        \        V P                  4      o\        ;QJ d    . VV3R lVR,           4       F  NK  	  5M! VV3R lVR,           4       4      V n        M\        R4      hV P                  4        R# u upi )c                    V ^8  d   QhRRRR/# )rD   rm   re   rF   r1   rG   )rH   s   "rI   rJ   5SingleBlockManager.__setstate__.<locals>.__annotate__  s     	D 	D3 	D5 	DrK   c                    \        V R R7      p \        V\        4      '       g   \        V4      p\        V 4      p \	        WVR7      # )TrH  rV  )r,   rT   r   r6   r7   )r   r$  rm   s   &&&rI   unpickle_block7SingleBlockManager.__setstate__.<locals>.unpickle_block  s>     #6>Fh77)(3(0FVdCCrK   rN  rb   c              3  V   <"   T F  pS! VR ,          VR,          SR7      x  K   	  R# 5i)r   r$  r"  NrG   )r   r0  rm   rY  s   & rI   r   2SingleBlockManager.__setstate__.<locals>.<genexpr>   s,       (A q{AjMEE(s   &)r`   z*pre-0.14.1 pickles are no longer supportedN)rT   r   rM   r0   rb   r`   rj   _post_setstate)rl   stater   rm   rY  s   && @@rI   __setstate__SingleBlockManager.__setstate__  s    	D eU##E
aHa<P!HX&E49&MBMbb)MBDItyy>D%  x %%  x  DK
 &&RSS Cs   C.c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r6  )  s       rK   c                	    R # rh   rG   rk   s   &rI   r]  !SingleBlockManager._post_setstate)  s    rK   c                   V ^8  d   QhRR/# )rD   rF   r1   rG   )rH   s   "rI   rJ   r6  -  s       rK   c                	(    V P                   ^ ,          # r   )r`   rk   s   &rI   r  SingleBlockManager._block,  s    {{1~rK   c                   V ^8  d   QhRR/# )rD   rF   r<   rG   )rH   s   "rI   rJ   r6  2  s     % %y %rK   c                <    V P                   ^ ,          P                  # )z1
Quick access to the backing array of the Block.
r   rk   s   &rI   r   SingleBlockManager.array0  s     {{1~$$$rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r6  :  s       rK   c                    R# zcompat with BlockManagerNrG   rk   s   &rI   r]   SingleBlockManager._blknos9       rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r6  @  s      $ rK   c                    R# rl  rG   rk   s   &rI   r^   SingleBlockManager._blklocs?  rn  rK   c                    V ^8  d   QhRRRR/# )rD   r%  znpt.NDArray[np.bool_]rF   r   rG   )rH   s   "rI   rJ   r6  D  s     * **? *D *rK   c                	$   V P                   p\        V4      ^ 8  dC   VP                  4       '       d-   \        V 4      ! VP	                  RR7      V P
                  4      # VP                  V,          p\        V\        P                  4      '       d   VP                  P                  R8X  d   RpMVP                  p\        \        ^ \        V4      4      4      p\        V4      ! W5^VR7      pV P
                  V,          p\        V 4      ! Wg4      # )r   Fr  r0  NrT  )r  rM   r  r   r  r  r   rT   rV   r  rP   rX  r   r   r   )rl   r%  r   r   r   r   r  new_idxs   &&      rI   get_rows_with_mask%SingleBlockManager.get_rows_with_maskD  s    kkw<!:chhEh2DJJ??

7#grzz**w}}/A/AS/HD 88DE!SZ01S	%ADA**W%Dz%))rK   c               $    V ^8  d   QhRRRRRR/# )rD   r  r   r   r=   rF   r   rG   )rH   s   "rI   rJ   r6  X  s"     , ,u ,G ,<N ,rK   c                	F   W P                   8  d   \        R 4      hV P                  pVP                  V,          p\	        \        ^ \        V4      4      4      p\        V4      ! WE^VP                  R7      pV P                  P                  V4      p\        V 4      ! Wg4      # )r  rT  )rm   r  r  r   r   r   rM   r   r   r  _getitem_slice)rl   r  r   r   r   r   r  r  s   &&&     rI   	get_sliceSingleBlockManager.get_sliceX  s     99BCCkk

5!E!SZ01 S	%ACHHEJJ--e4	Dz%++rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r6  h  r   rK   c                	(    V P                   ^ ,          # r   r   rk   s   &rI   r  SingleBlockManager.indexg  r   rK   c                   V ^8  d   QhRR/# )rD   rF   r>   rG   )rH   s   "rI   rJ   r6  l  s     ! !x !rK   c                	.    V P                   P                  # rh   )r  rP   rk   s   &rI   rP   SingleBlockManager.dtypek  s    {{   rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r6  o  s     ; ;3 ;rK   c                	d    \         P                  ! V P                  P                  .\        R 7      # r   )rV   r   r  rP   rS   rk   s   &rI   r   SingleBlockManager.get_dtypeso  s     xx**+6::rK   c                6    V P                   P                  4       # )z$The array that Series.values returns)r  external_valuesrk   s   &rI   r  "SingleBlockManager.external_valuesr  s    {{**,,rK   c                .    V P                   P                  # )z%The array that Series._values returns)r  r   rk   s   &rI   internal_values"SingleBlockManager.internal_valuesv  s    {{!!!rK   c                   V ^8  d   QhRR/# )rD   rF   rB   rG   )rH   s   "rI   rJ   r6  z  s     ( (n (rK   c                .    V P                   P                  # )z#The array that Series.array returns)r  rm  rk   s   &rI   rm  SingleBlockManager.array_valuesz      {{'''rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r6  ~  s     ! !$ !rK   c                	~    V P                   P                  '       d   V P                  R R7      # V P                  4       # )Fr  )r  r  r  r   rk   s   &rI   r  #SingleBlockManager.get_numeric_data~  s0    ;;!!!99%9((  rK   c                   V ^8  d   QhRR/# r   rG   )rH   s   "rI   rJ   r6    s     ( (d (rK   c                	.    V P                   P                  # rh   )r  _can_hold_nark   s   &rI   r  SingleBlockManager._can_hold_na  r  rK   c                   V ^8  d   QhRR/# r  rG   )rH   s   "rI   rJ   r6    s       rK   c                   V P                  ^ 4      '       g3   V P                  P                  RR7      3V n        V P	                  4        V P
                  p\        V\        P                  4      '       d   \        VP                  V4      p\        V\        P                  4      '       d+   VP                  ^8X  d   \        V4      ^8X  d
   VR,          pW#V&   R# )z
Set values with indexer.

For SingleBlockManager, 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.
Tr  N)r   .)r   r  r  r`   _reset_cacher   rT   rV   r  r   rP   rm   rM   )rl   r%  r?  r   s   &&& rI   r  "SingleBlockManager.setitem_inplace  s     %%a((;;+++68DKjj c2::&& (		59EeRZZ((UZZ1_Uq&MEGrK   c                   V ^8  d   QhRR/# )rD   rF   r   rG   )rH   s   "rI   rJ   r6    s     
 
"4 
rK   c                    V P                   P                  V4      ^ ,          pV3V n        V P                  ^ ,          P                  V4      V P                  ^ &   V P	                  4        V # )za
Delete single location from SingleBlockManager.

Ensures that self.blocks doesn't become empty.
)r  r  r`   rb   r  )rl   r%  r   s   && rI   r  SingleBlockManager.idelete  sW     [[(+eyy|**73		!rK   c                    \        R4      h)zA
fast path for getting a cross-section
return a view of the data
zUse series._values[loc] insteadri   )rl   rR  s   &&rI   r`  SingleBlockManager.fast_xs  s    
 ""CDDrK   c                    V ^8  d   QhRRRR/# )rD   r   r<   rF   ru   rG   )rH   s   "rI   rJ   r6    s     F F Ft FrK   c                    WP                   ^ ,          n        \        \        \	        V4      4      4      V P                   ^ ,          n        R# )z
Set the values of the single block in place.

Use at your own risk! This does not check if the passed values are
valid for the current Block/SingleBlockManager (length, dtype, etc),
and this does not properly keep track of references.
N)r`   r   r   r   rM   rl  )rl   r   s   &&rI   
set_valuesSingleBlockManager.set_values  s0     !'A#1%F2D#EA rK   c                    V ^8  d   QhRRRR/# r
  rG   )rH   s   "rI   rJ   r6    s     
) 
)4 
)D 
)rK   c                    VP                   ^8w  d   R# V P                  ^ ,          P                  pVP                  ^ ,          P                  p\        W#4      # )r  F)rm   r`   r   r&   )rl   r  leftrights   &&  rI   r   SingleBlockManager._equal_values  sC     ::?{{1~$$Q&&D((rK   c                	    V P                   pV! V4      p\        \        V4      4      p\        V 4      P	                  W44      pV# rh   )r   r/   rM   r   rB  )rl   r7  r   r  r  r   s   &&    rI   r  !SingleBlockManager.grouped_reduce  s;    jj3ic#h'4j##C/
rK   r;  rG   r3  rh   r   )+r  r0  r1  r2  r3  r6  rm   rr   rq   r4  r   rw   r7  r   rB  rH  r   rR  r_  r]  r   r  r   r   r]   r^   ru  rz  r  rP   r   r  r  rm  r  r  r  r  r`  r  r  r  r8  rG   rK   rI   r   r     sN   $  IO 
? 
? 	! 	!	J7B&0   %  %  
  *(,   ! !;-"(!
 ( (8
EF
)rK   r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rD   r`   r   rb   ra   r  rp   rt   rF   r:  rG   )rH   s   "rI   rJ   rJ     s:      
  	
 rK   c                .    \        WVR 7      pV'       d   XP                  4        X#   \         da   pT  Uu. uF  qfP                  NK  	  Mu upi pp\        R T 4       4      p\	        Y^ ,          P
                  R,          Y4        Rp?LRp?ii ; i)r  c              3  F   "   T F  qP                   ^ ,          x  K  	  R# 5i)r   N)r   )r   r   s   & rI   r   3create_block_manager_from_blocks.<locals>.<genexpr>  s     7		!s   !r   N)r:  r   r   rH  rI  r   rj  )	r`   rb   r  rt   r   errr   r   rK  s	   &&&&     rI    create_block_manager_from_blocksr    s    L6:JK   "J  L(./**//777	 1IOOB,?KKLs   ) BBA>BBc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rD   r   r   rb   ra   r  rp   r   r  rF   r:  rG   )rH   s   "rI   rJ   rJ     s:      
  	
 rK   c                     \        WV4      p\        WAR R7      pV'       d   XP                  4        X#   \         d2   p\        \	        T 4      T ^ ,          P
                  Y4        Rp?LQRp?ii ; i)Fr  N)_form_blocksr:  r   rI  rM   r   rj  )r   rb   r  r   r`   r   es   &&&&   rI   'create_block_manager_from_column_arraysr    se    "Hf486%@   "J	  H VfQiootGGHs   5 A1 'A,,A1c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rD   rK  re   block_shaper@   rb   ra   r  zValueError | NonerF   r
   rG   )rH   s   "rI   rJ   rJ   	  sA     U UUU U 	U
 UrK   c                n   \        \        \        V .VO4      4      p\        V4      ^8:  d   VRRR1,          p\         ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        V4      ^8:  d   VRRR1,          pWE8X  d   Ve   VhV^ ,          ^ 8X  d   \	        R4      h\	        RV RV 24      h)z.raise a helpful message about our constructionNc              3  8   "   T F  p\        V4      x  K  	  R # 5irh   r   r   s   & rI   r   +raise_construction_error.<locals>.<genexpr>	  s     +dCGGdr   z)Empty data passed with indices specified.zShape of passed values is z, indices imply r  )r   mapre   rM   r   )rK  r  rb   r  passedimplieds   &&&&  rI   rI  rI  	  s     3sY5567F
6{a"e+d+ee+d++G
7|q$B$- Q]1~DEE
1&9I'S
TTrK   c                    V ^8  d   QhRRRR/# )rD   tupztuple[int, ArrayLike]rF   ztuple[int, DtypeObj]rG   )rH   s   "rI   rJ   rJ   .	  s     
 
- 
2F 
rK   c                p    V ^,          P                   p\        V4      '       d   \        V4      pW!3# ^ pW!3# r   )rP   r   id)r  rP   seps   &  rI   _grouping_funcr  .	  s>    FLLE5!! i : :rK   c               (    V ^8  d   QhRRRRRRRR/# )	rD   r   r   r  rp   r   r  rF   r   rG   )rH   s   "rI   rJ   rJ   ;	  s(     + + +t +4 +K +rK   c                v   \        V 4      pV'       g   \        W24      # \        P                  ! V\        4      p. pV EFl  w  w  rgp\        V4      p	\        V\        P                  4      '       d   VP                  R 9   p
\        VP                  \        \        34      '       d   \        P                  ! \        4      p\        W4      w  rV
'       d   \!        V4      pV	! V\#        V4      ^R7      pVP%                  V4       K  \'        V4      '       dF   V Uu. uF%  pV	! V^,          \#        V^ ,          4      ^R7      NK'  	  ppVP)                  V4       EK   V Uu. uF/  pV	! \+        V^,          ^4      \#        V^ ,          4      ^R7      NK1  	  ppVP)                  V4       EKo  	  V# u upi u upi )r
  rV  )r    _tuples_to_blocks_no_consolidater   r  r  r5   rT   rV   rP   rX  
issubclassr   rW   bytesrS   _stack_arraysr+   r   r  r   r  r3   )r   r  r   tuplesgrouperr  _rP   	tup_block
block_type	is_dtliker   r   r   rE  dtype_blockss   &&&             rI   r  r  ;	  s   vF/== 7GC!(
I#E*
eRXX&&

d*I%**sEl33( -i ?F7?V~i/HqQCJJsO '' #"A 1Q4>!A$+?aH"   JJ|$ #	 #A &qtQ/>!A$;OVW #	   JJ|$; ")< Js   +F1"5F6c                   V ^8  d   QhRR/# )rD   rF   r   rG   )rH   s   "rI   rJ   rJ   i	  s      k rK   c                    \        WR R7       UUUu. uF*  w  w  r#p\        \        V^R7      \        V4      VR7      NK,  	  uppp# u upppi )Tr  r"  r  )r  r8   r3   r   )r  r   r   r   r   s   &&   rI   r  r  i	  sR      #6=	  >OXas 	s+~a7Hs	
  >	  s   0Ac                   V ^8  d   QhRR/# )rD   rP   rQ   rG   )rH   s   "rI   rJ   rJ   s	  s     
 
 
rK   c                    \        V R R/ w  r#V^ ,          p\        V4      .VP                  O5p\        P                  ! WQR7      p\        V4       F	  w  rxWV&   K  	  Wb3# )r  TrX   )r  rM   r   rV   r#  r   )	r  rP   r   r   firstr   stackedr   r   s	   &&       rI   r  r  s	  sc    V1D1I1IE['5;;'Ehhu*GF#
 $ rK   c                    V ^8  d   QhRRRR/# )rD   r`   r_   rF   rG   )rH   s   "rI   rJ   rJ   	  s      * /@ rK   c                    R p\         P                  ! \        WR7      V4      p. pV F+  w  w  rEp\        \	        V4      WTR7      w  rx\        Ws4      pK-  	  \        V4      # )zB
Merge blocks having same dtype, exclude non-consolidating blocks
c                    V P                   # rh   )_consolidate_key)rE  s   &rI   r  _consolidate.<locals>.<lambda>	  s
    Q''rK   r  )rP   can_consolidate)r   r  r  _merge_blocksr  r4   r   )	r`   gkeyr  r  r  rP   group_blocksmerged_blocksr  s	   &        rI   r$  r$  	  sh    
 (Dv 8$?G J3:/!	<(e
 #==
	 4;
 rK   c               (    V ^8  d   QhRRRRRRRR/# )	rD   r`   r   rP   r>   r  rp   rF   ztuple[list[Block], bool]rG   )rH   s   "rI   rJ   rJ   	  s,          ( ;?  rK   c                   \        V 4      ^8X  d   V R3# V'       Ed*   \        P                  ! V  Uu. uF  q3P                  P                  NK  	  up4      p\        V ^ ,          P                  \        P                  4      '       d1   \        P                  ! V  Uu. uF  q3P                  NK  	  up4      pMOV  Uu. uF  qfP                  NK  	  pp\        \        \        ,          V4      pV^ ,          P                  V^ R7      p\        P                  ! V4      p	WY,          pWI,          p\        V4      p
\        WZR7      .R3# V R3# u upi u upi u upi )r   Fr  r   T)rM   rV   r  r$  r  rT   rP   vstackr   r   r   r)   _concat_same_typeargsortr   r8   )r`   rP   r  r0  r
  
new_valuesr   bvalsbvals2r  r   s   &&&        rI   r  r  	  s    6{au} ~~F&KFqzz':':F&KL fQioorxx00
 f#=fHHf#=>J+126CZZ6E2(#>?GF44V!4DJ**\*(
#,L)Z67== 5=/ 'L $>2s   EE<Ec               $    V ^8  d   QhRRRRRR/# )rD   r  r  lengthre   r	  rp   rG   )rH   s   "rI   rJ   rJ   	  s$     . .(.25.CG.rK   c                r   \        V \        4      '       d   R V \        P                  ! W4      3# \        V \        P
                  4      '       d   V P                  P                  R8w  d#   \        V RR4      p\        \        V 4      V4      h\        V 4      pV'       g   \        WA4      pRV\        V4      3# )r   r   rP   Nfancy)rT   r   r  	slice_lenrV   r  rP   rX  r)  	TypeErrorr   r   r-   rM   )r  r  r	  rP   r%  s   &&&  rI   r  r  	  s     "E**""#3<
 	
 +RZZ88%%**c1,gt<ED!12E::%&67+G<GW--rK   c               $    V ^8  d   QhRRRRRR/# )rD   rP   r>   r   r@   rF   r<   rG   )rH   s   "rI   rJ   rJ   	  s!          %  	  rK   c                Z   \        V \        4      '       d{   \        V4      P                  V P                  4      p\
        P                  ! WP                  4      pVP                  R V P                   R24      p\        P                  ! WPR7      # \        V 4      '       d   \        \        V 4      p V P                  4       pVP                  . V R7      pVw  rV^8X  g   Q V4       hR\
        P                   ! V	3\
        P"                  R7      ,          p
VP%                  V
RVR7      # \        V \        4      '       d)   V P                  4       pVP'                  WR7      pW'R&   V# \
        P(                  ! WR7      pVP+                  V4       V P,                  R9   d   \/        V4      pV# )	zM8[]rX   T)r	  rz  )r   rP   r"  r
  r  )rT   r!   r   as_unitunitrV   full_valuer*  r(   _simple_newr   r   r"   r[  r\  onesr  r   _emptyr#  r  rX  r+   )rP   r   rz  tsi8values
dt64valuesr   missing_arrncolsr  	empty_arrmissing_arr_nps   &&&         rI   r'  r'  	  s_   %))z"**5::6775)),]]SA#67
((AA	U	#	#^U+((*((5(9z 5 z%99		dzRR	E>	*	* ((*jjuj:#A %5J'::;NKNrK   )TTrh   )s
__future__r   collections.abcr   r   r   r   typingr   r   r	   r
   r   r   r   r  numpyrV   pandas._config.configr   pandas._libsr   r@  r   r  r   pandas._libs.internalsr   r   pandas._libs.tslibsr   pandas.errorsr   r   pandas.util._decoratorsr   pandas.util._exceptionsr   pandas.util._validatorsr   pandas.core.dtypes.castr   r   r   pandas.core.dtypes.commonr   r   r   pandas.core.dtypes.dtypesr    r!   r"   r#   pandas.core.dtypes.genericr$   r%   pandas.core.dtypes.missingr&   r'   pandas.core.algorithmscore
algorithmspandas.core.arraysr(   pandas.core.arrays._mixinsr)   pandas.core.baser*   pandas.core.constructionr+   r,   pandas.core.indexersr-   pandas.core.indexes.apir.   r/   r0   pandas.core.internals.blocksr1   r2   r3   r4   r5   r6   r7   r8   pandas.core.internals.opsr9   r:   r;   pandas._typingr<   r=   r>   r?   r@   rA   pandas.api.extensionsrB   rN   rY   r[   r:  r   r  r  rI  r  r  r  r  r$  r  r  r'  rG   rK   rI   <module>r     sJ   " 
      , 
 * 3 4 7 
 
 
 ' & , B ) 7 
	 	 	
 )  5$&
R
| R
jRT<,,.> RTj\) \F	46U:
+\
" F.. rK   