ó
    Ñ]j7  ã                  óê   • S SK Jr  S SKJrJr  S SKJr  \(       a  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr   " S	 S
\5      r      SS jr      SS jrSS jr          SS jrSS jrg)é    )Úannotations)ÚTYPE_CHECKINGÚ
NamedTuple)Úis_1d_only_ea_dtype)ÚIterator)ÚBlockPlacement)Ú	ArrayLike)ÚBlock)ÚBlockManagerc                  óR   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   Srg)ÚBlockPairInfoé   r	   ÚlvalsÚrvalsr   ÚlocsÚboolÚleft_eaÚright_ear
   Úrblk© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/internals/ops.pyr   r      s#   ‡ ØÓØÓØ
ÓØƒMØƒNØ
†Kr   r   c           
   #  ó6  #   • U R                    H…  nUR                  nUR                  nUR                  S:H  nUR	                  UR
                  SS9nU H;  nUR                  R                  S:H  n[        X'XX5      u  pš[        XšX5X‡5      nUv •  M=     M‡     g 7f)Né   T)Ú
only_slice)ÚblocksÚmgr_locsÚvaluesÚndimÚ_slice_take_blocks_ax0ÚindexerÚ_get_same_shape_valuesr   )ÚleftÚrightÚblkr   Úblk_valsr   Úrblksr   r   r   r   Úinfos               r   Ú_iter_block_pairsr/      s�   é € ð �{Œ{ˆØ�|‰|ˆØ—:‘:ˆà—-‘- 1Ñ$ˆà×,Ñ,¨T¯\©\ÀdÐ,ÐKˆó ˆDØ—{‘{×'Ñ'¨1Ñ,ˆHä1°#¸WÓO‰LˆEÜ  ¨t¸hÓMˆDØŒJó ò ùs   ‚BBc                ó~  • / n[        X5       H‡  u  pEpgp‰U" XE5      n
U(       aD  U(       d=  [        U
S5      (       a,  [        U
R                  5      (       d  U
R	                  SS5      n
U	R                  U
5      n[        X¶5        UR                  U5        M‰     [        U5      " [        U5      UR                  SS9nU$ )NÚreshaper    éÿÿÿÿF)ÚaxesÚverify_integrity)r/   Úhasattrr   Údtyper1   Ú_split_op_resultÚ_reset_block_mgr_locsÚextendÚtypeÚtupler3   )r)   r*   Úarray_opÚres_blksr   r   r   r   r   r   Ú
res_valuesÚnbsÚnew_mgrs                r   Úoperate_blockwiserA   9   s§   € ð €HÜ7HÈÖ7UÑ3ˆ�d XÙ˜eÓ+ˆ
æÞÜ˜
 I×.Ñ.Ü'¨
×(8Ñ(8×9Ñ9à#×+Ñ+¨A¨rÓ2ˆJØ×#Ñ# JÓ/ˆô 	˜cÔ(à�‰˜Öñ' 8Vô: �5Œkœ% ›/°·
±
ÈUÑS€GØ€Nr   c                óR   • U  H!  nXR                   R                     nX2l         M#     g)z9
Reset mgr_locs to correspond to our original DataFrame.
N)r#   r'   )r?   r   ÚnbÚnblocss       r   r8   r8   a   s%   € ó ˆØ—k‘k×)Ñ)Ñ*ˆØŽò r   c                óì  • U R                   nUR                   nUR                  R                  (       d   UR                  5       eU(       d^  U(       dW  XAR                  R                  SS24   nUR                  UR                  :X  d   UR                  UR                  45       e XE4$ U(       aB  U(       a;  UR                  UR                  :X  d   UR                  UR                  45       e XE4$ U(       aL  XAR                  R                  SS24   nUR                  S   S:X  d   UR                  5       eUSSS24   nXE4$ UR                  S   S:X  d   UR                  5       eUSSS24   nXE4$ )z@
Slice lblk.values to align with rblk.  Squeeze if we have EAs.
Nr   r    )r$   r#   Úis_slice_liker'   Úshape)Úlblkr   r   r   r   r   s         r   r(   r(   m   sK  € ð �K‰K€EØ�K‰K€Eð �=‰=×&×&Ð5¨¯©Ó5Ð&ö –xð —m‘m×+Ñ+ªQÐ.Ñ/ˆØ�{‰{˜eŸk™kÓ)ÐE¨E¯K©K¸¿¹Ð+EÓEÑ)ð$ ˆ<Ðö# 
–XØ�{‰{˜eŸk™kÓ)ÐE¨E¯K©K¸¿¹Ð+EÓEÑ)ð  ˆ<Ðö 
ð
 —m‘m×+Ñ+ªQÐ.Ñ/ˆØ�{‰{˜1‰~ Ó"Ð/ E§K¡KÓ/Ð"Ø�aš�d‘ˆð ˆ<Ðð �{‰{˜1‰~ Ó"Ð/ E§K¡KÓ/Ð"ð �aš�d‘ˆàˆ<Ðr   c                ót   • [        X5       H)  nU" UR                  UR                  5      nU(       a  M)    g   g)z
Blockwise `all` reduction.
FT)r/   r   r   )r)   r*   Úopr.   Úress        r   Úblockwise_allrL   “   s4   € ô " $Ö.ˆÙ�—‘˜TŸZ™ZÓ(ˆßˆsÙñ /ð r   N)r)   r   r*   r   ÚreturnzIterator[BlockPairInfo])r)   r   r*   r   rM   r   )r?   zlist[Block]rM   ÚNone)
rH   r
   r   r
   r   r   r   r   rM   ztuple[ArrayLike, ArrayLike])r)   r   r*   r   rM   r   )Ú
__future__r   Útypingr   r   Úpandas.core.dtypes.commonr   Úcollections.abcr   Úpandas._libs.internalsr   Úpandas._typingr	   Úpandas.core.internals.blocksr
   Úpandas.core.internals.managersr   r   r/   rA   r8   r(   rL   r   r   r   Ú<module>rW      s£   ðÝ "÷õ
 :æÝ(å5Ý(å2Ý;ô�Jô ðØ
ðØ+ðàôð8%Ø
ð%Ø+ð%àô%ôPð#Ø
ð#Øð#Ø'+ð#Ø7;ð#à ô#õLr   