Ë
    ¤eh  ã                  óÖ   — d dl mZ d dlmZmZ d dlmZ erd dl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)Ú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__© ó    úW/var/www/skyplay_api_hub/venv/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Útupler0   )r&   r'   Úarray_opÚres_blksr   r   r   r   r   r   Ú
res_valuesÚnbsÚnew_mgrs                r   Úoperate_blockwiser>   9   s³   € ð €HÜ7HÈÈuÓ7Uò Ñ3ˆˆu�d˜G X¨tÙ˜e UÓ+ˆ
áÙÜ˜
 IÔ.Ü'¨
×(8Ñ(8Ô9à#×+Ñ+¨A¨rÓ2ˆJØ×#Ñ# JÓ/ˆô 	˜c 4Ô(à�‰˜Õð'ð8 Œ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   r5   r5   `   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%   l   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_allrI   ’   s9   € ô " $¨Ó.ò ˆÙ�—‘˜TŸZ™ZÓ(ˆÚÙðð r   N)r&   r   r'   r   ÚreturnzIterator[BlockPairInfo])r&   r   r'   r   rJ   r   )r<   zlist[Block]rJ   ÚNone)
rE   r
   r   r
   r   r   r   r   rJ   ztuple[ArrayLike, ArrayLike])r&   r   r'   r   rJ   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,   r>   r5   r%   rI   r   r   r   ú<module>rT      s£   ðÝ "÷õ
 :áÝ(å5Ý(å2Ý;ô�Jô ðØ
ðØ+ðàóð8$Ø
ð$Ø+ð$àó$óNð#Ø
ð#Øð#Ø'+ð#Ø7;ð#à ó#ôLr   