Ë
    u™ãj  ã                  óî   — d dl mZ d dlmZmZ d dlmZ er d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ  G d	„ d
e«      Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zy)é    )Úannotations)ÚTYPE_CHECKINGÚ
NamedTuple)Úis_1d_only_ea_dtype)ÚCallableÚIterator)ÚBlockPlacement)Ú	ArrayLike)ÚBlock)ÚBlockManagerc                  óJ   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   y)ÚBlockPairInfor
   ÚlvalsÚrvalsr	   ÚlocsÚboolÚleft_eaÚright_ear   ÚrblkN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úd/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/core/internals/ops.pyr   r      s#   … ØÓØÓØ
ÓØƒMØƒNØ
„Kr   r   c           
   #  ó@  K  — | j                   D ]‹  }|j                  }|j                  }|j                  dk(  }|j	                  |j
                  d¬«      }|D ]@  }|j                  j                  dk(  }t        ||||«      \  }	}
t        |	|
||||«      }|–— ŒB Œ� y ­w)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°#°t¸WÀhÓO‰LˆE�5Ü  ¨¨t°W¸hÈÓMˆDØ‹Jñ	ñùs   ‚BBc                ód  — g }t        | |«      D ]w  \  }}}}}}	 |||«      }
|r5|s3t        |
d«      r't        |
j                  «      s|
j	                  dd«      }
|	j                  |
«      }t        ||«       |j                  |«       Œy  t        |«      t        |«      |j                  d¬«      }|S )NÚreshaper   éÿÿÿÿF)ÚaxesÚverify_integrity)r-   Úhasattrr   Údtyper/   Ú_split_op_resultÚ_reset_block_mgr_locsÚextendÚtypeÚtupler1   )r'   r(   Úarray_opÚres_blksr   r   r   r   r   r   Ú
res_valuesÚnbsÚnew_mgrs                r   Úoperate_blockwiser?   <   s³   € ð €HÜ7HÈÈuÓ7Uò Ñ3ˆˆu�d˜G X¨tÙ˜e UÓ+ˆ
áÙÜ˜
 IÔ.Ü'¨
×(8Ñ(8Ô9à#×+Ñ+¨A¨rÓ2ˆJØ×#Ñ# JÓ/ˆô 	˜c 4Ô(à�‰˜Õð'ð: Œd�5‹kœ% ›/°·
±
ÈUÔS€GØ€Nr   c                óR   — | D ]"  }||j                   j                     }||_         Œ$ y)zA
    Reset mgr_locs to correspond to our original DataFrame.
    N)r!   r%   )r=   r   ÚnbÚnblocss       r   r6   r6   f   s.   € ð ò ˆØ�b—k‘k×)Ñ)Ñ*ˆØˆ�ñr   c                ó°  — | j                   }|j                   }|j                  j                  sJ |j                  «       ‚|sY|sW||j                  j                  dd…f   }|j                  |j                  k(  sJ |j                  |j                  f«       ‚||fS |r<|r:|j                  |j                  k(  sJ |j                  |j                  f«       ‚||fS |rM||j                  j                  dd…f   }|j                  d   dk(  sJ |j                  «       ‚|ddd…f   }||fS |j                  d   dk(  sJ |j                  «       ‚|ddd…f   }||fS )zH
    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&   r   sW  € ð �K‰K€EØ�K‰K€Eð �=‰=×&Ò&Ð5¨¯©Ó5Ð&ñ ‘xð �d—m‘m×+Ñ+ªQÐ.Ñ/ˆØ�{‰{˜eŸk™kÒ)ÐE¨E¯K©K¸¿¹Ð+EÓEÐ)ð$ �%ˆ<Ðñ# 
‘XØ�{‰{˜eŸk™kÒ)ÐE¨E¯K©K¸¿¹Ð+EÓEÐ)ð  �%ˆ<Ðñ 
ð
 �d—m‘m×+Ñ+ªQÐ.Ñ/ˆØ�{‰{˜1‰~ Ò"Ð/ E§K¡KÓ/Ð"Ø�aš�d‘ˆð �%ˆ<Ðð �{‰{˜1‰~ Ò"Ð/ E§K¡KÓ/Ð"ð �aš�d‘ˆà�%ˆ<Ðr   c                óh   — t        | |«      D ]#  } ||j                  |j                  «      }|rŒ# y y)z$
    Blockwise `all` reduction.
    FT)r-   r   r   )r'   r(   Úopr,   Úress        r   Úblockwise_allrJ   ˜   s9   € ô " $¨Ó.ò ˆÙ�—‘˜TŸZ™ZÓ(ˆÚÙðð r   N)r'   r   r(   r   ÚreturnzIterator[BlockPairInfo])r'   r   r(   r   r:   z+Callable[[ArrayLike, ArrayLike], ArrayLike]rK   r   )r=   zlist[Block]r   r	   rK   ÚNone)
rF   r   r   r   r   r   r   r   rK   ztuple[ArrayLike, ArrayLike])r'   r   r(   r   rH   z&Callable[[ArrayLike, ArrayLike], bool]rK   r   )Ú
__future__r   Útypingr   r   Úpandas.core.dtypes.commonr   Úcollections.abcr   r   Úpandas._libs.internalsr	   Úpandas._typingr
   Úpandas.core.internals.blocksr   Úpandas.core.internals.managersr   r   r-   r?   r6   r&   rJ   r   r   r   ú<module>rU      s×   ðÝ "÷õ
 :á÷õ
 6Ý(å2Ý;ô�Jô ðØ
ðØ+ðàóð8'Ø
ð'àð'ð :ð'ð ó	'óTð#Ø
ð#Øð#Ø'+ð#Ø7;ð#à ó#ðLØ
ðàðð 	/ðð 
ô	r   