Ë
    ¤eh  ã                  ó  — d Z ddlmZ ddlmZmZ ddlmZmZ ddl	Z	ddl
ZddlmZ ddlmZ ddlmZmZ dd	lmZ ddlmc 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„Z#	 	 	 	 	 	 dd„Z$dd„Z%dd„Z&e&d„ «       Z'd„ Z(d„ Z)y)z!
Core eval alignment algorithms.
é    )Úannotations)ÚpartialÚwraps)ÚTYPE_CHECKINGÚCallableN)ÚPerformanceWarning)Úfind_stack_level)ÚABCDataFrameÚ	ABCSeries)ÚPandasObject)Úresult_type_many)ÚSequence)ÚF)ÚNDFrame)ÚIndexc                óR  — d }t        | j                  t        j                  «      r3t	        t        j
                  | j                  j                  ¬«      }||fS t        | j                  «      }t        | j                  d«      r t        || j                  j                  «      }||fS )N)ÚdtypeÚaxes)Ú
isinstanceÚvalueÚnpÚndarrayr   Ú
asanyarrayr   ÚtypeÚhasattrÚ_zip_axes_from_typer   )Útermr   Útyps      ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/computation/align.pyÚ_align_core_single_unary_opr    '   s}   € ð %)€Dä�$—*‘*œbŸj™jÔ)Ü”b—m‘m¨4¯:©:×+;Ñ+;Ô<ˆð �ˆ9Ðô	 �4—:‘:ÓˆÜ�4—:‘:˜vÔ&Ü& s¨D¯J©J¯O©OÓ<ˆDà�ˆ9Ðó    c                óf   — t        | j                  «      D ��ci c]  \  }}|||   “Œ c}}S c c}}w ©N)Ú	enumerateÚ_AXIS_ORDERS)r   Únew_axesÚiÚnames       r   r   r   7   s0   € ô .7°s×7GÑ7GÓ-H×I¡' ! TˆD�(˜1‘+ÑÓIÐIùÓIs   ™-c                ó&   — t        d„ | D «       «      S )zB
    Check a sequence of terms for instances of PandasObject.
    c              3  óP   K  — | ]  }t        |j                  t        «      –— Œ  y ­wr#   )r   r   r   ©Ú.0r   s     r   ú	<genexpr>z&_any_pandas_objects.<locals>.<genexpr>A   s   è ø€ ÒF¸Œz˜$Ÿ*™*¤l×3ÑFùs   ‚$&)Úany)Útermss    r   Ú_any_pandas_objectsr0   =   s   € ô ÑFÀÔFÓFÐFr!   c                ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                óˆ   •— t        | «      dk(  rt        | d   «      S d„ | D «       }t        | «      s
t        |Ž d fS  ‰| «      S )Né   r   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr#   ©r   r+   s     r   r-   z9_filter_special_cases.<locals>.wrapper.<locals>.<genexpr>K   s   è ø€ Ò4 d�t—z•zÑ4ùó   ‚)Úlenr    r0   r   )r/   Úterm_valuesÚfs     €r   Úwrapperz&_filter_special_cases.<locals>.wrapperE   sL   ø€ ô ˆu‹:˜Š?Ü.¨u°Q©xÓ8Ð8á4¨eÔ4ˆô # 5Ô)Ü# [Ð1°4Ð7Ð7á�‹xˆr!   )r   )r9   r:   s   ` r   Ú_filter_special_casesr;   D   s    ø€ Ü
ˆ1ƒXóó ðð €Nr!   c                ó˜  ‡ — t        ‰ «      D ��cg c]  \  }}t        |j                  d«      sŒ|‘Œ  }}}|D �cg c]  }‰ |   j                  j                  ‘Œ }}ddlm}  |t        t        ||«      «      «      }‰ |j                  «          j                  }|j                  }|j                  }	t        |	«      }
|
dkD  }ˆ fd„|D «       D ]y  }t        |t        «      }|xr |}t        |j                  «      D ]I  \  }}|r|
dz
  |j                  }}n||}}|	|   j                  |«      rŒ3|	|   j!                  |«      |	|<   ŒK Œ{ |j#                  «       D �]V  \  }}t        t%        |«      |	«      D �]  \  }}‰ |   j                  }t        |d«      sŒ#t        |t        «      xr |
dkD  }|r|	|
dz
     n|}t        |j                  |   «      }t        |«      }t'        j(                  t+        dt-        ||z
  «      «      «      }|dk\  rL|dk\  rGd|› d	t/        ‰ |   j0                  «      › d
|d›d�}t3        j4                  |t6        t9        «       ¬«       |j;                  ||d¬«      }‰ |   j=                  |«       �Œ ‰ |   j=                  ‰ |   j                  j>                  «       �ŒY |tA        ||	«      fS c c}}w c c}w )Nr   r   )ÚSeriesr3   c              3  ó<   •K  — | ]  }‰|   j                   –— Œ y ­wr#   r5   )r,   r'   r/   s     €r   r-   z_align_core.<locals>.<genexpr>f   s   øè ø€ Ò5 Q�%˜‘(—.•.Ñ5ùs   ƒÚreindexi'  zAlignment difference on axis z. is larger than an order of magnitude on term z, by more than z.4gz; performance may suffer.)ÚcategoryÚ
stacklevelF)ÚaxisÚcopy)!r$   r   r   ÚndimÚpandasr=   ÚdictÚzipÚidxmaxÚ_constructorr   r7   r   r   ÚindexÚis_ÚunionÚitemsÚranger   Úlog10ÚmaxÚabsÚreprr(   ÚwarningsÚwarnr   r	   r?   ÚupdateÚvaluesr   )r/   r'   r   Ú
term_indexÚ	term_dimsr=   ÚndimsÚbiggestr   r   ÚnaxesÚgt_than_one_axisr   Ú	is_seriesÚis_series_and_gt_one_axisrB   rM   ÚaxÚitmrD   ÚtiÚ	transposeÚ	reindexerÚterm_axis_sizeÚreindexer_sizeÚordmÚwÚobjs   `                           r   Ú_align_coreri   V   s§  ø€ ä#,¨UÓ#3×S™˜˜4´w¸t¿z¹zÈ6Õ7R’!ÐS€JÑSØ.8Ö9¨��q‘—‘×$Ó$Ð9€IÐ9åá”4œ˜J¨	Ó2Ó3Ó4€Eð �E—L‘L“NÑ#×)Ñ)€GØ
×
Ñ
€CØ�<‰<€DÜ�‹I€EØ˜q‘yÐã5¨*Ô5ò /ˆÜ˜u¤iÓ0ˆ	Ø$-Ò$BÐ2BÐ!ä$ U§Z¡ZÓ0ò 	/‰KˆD�%Ù(Ø !™) U§[¡[�C‘à �C�à˜‘8—<‘< Õ$Ø ™8Ÿ>™>¨#Ó.��R’ñ	/ð	/ð —;‘;“=ó /‰ˆˆ4Üœu T›{¨DÓ1ó 	%‰KˆD�%Ø�q‘—‘ˆBä�r˜9Õ%Ü& r¬9Ó5ÒC¸%À!¹)�	Ù/8˜D ¨¡šO¸e�	ä!$ R§W¡W¨T¡]Ó!3�Ü!$ Y£�ä—x‘x¤ A¤s¨>¸NÑ+JÓ'KÓ LÓM�Ø˜1’9 °5Ò!8à7¸°vð >>Ü>BÀ5ÈÁ8Ç=Á=Ó>QÐ=Rð S(Ø(,¨S zÐ1JðLð ô
 —M‘MØÔ$6ÔCSÓCUõð —j‘j °¸E�jÓB�Ø�a‘—‘ Ö$ð-	%ð0 	ˆa‰�‰˜˜a™Ÿ™×-Ñ-Ö.ð3/ð6 Ô# C¨Ó.Ð.Ð.ùóm TùÚ9s   �K¯Kº Kc                óÐ  — 	 t        t        j                  | «      «      } t        d„ | D «       «      rt        d„ | D «       Ž j                  dfS t        | «      \  }}||fS # t        $ r} t	        | j
                  t        t        f«      r9t        | j
                  «      }|t        || j
                  j                  «      fcY S t        j                  | j                  «      dfcY S w xY w)z
    Align a set of terms.
    Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­wr#   )Ú	is_scalarr+   s     r   r-   zalign_terms.<locals>.<genexpr>    s   è ø€ Ò
,˜dˆ4�>�>Ñ
,ùr6   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr#   r5   r+   s     r   r-   zalign_terms.<locals>.<genexpr>¡   s   è ø€ Ò!?° $§*¥*Ñ!?ùr6   )ÚlistÚcomÚflattenÚ	TypeErrorr   r   r   r
   r   r   r   r   Úresult_typeÚallr   ri   )r/   r   r   s      r   Úalign_termsrt   ‘   sÇ   € ð0ä”S—[‘[ Ó'Ó(ˆô Ñ
, eÔ
,Ô,ÜÑ!?¸Ô!?Ð@×EÑEÀtÐKÐKô ˜EÓ"�I€CˆØ�ˆ9Ðøô ò 0ä�e—k‘k¤I¬|Ð#<Ô=Ü�u—{‘{Ó#ˆCØÔ+¨C°·±×1AÑ1AÓBÐBÒBÜ�~‰~˜eŸj™jÓ)¨4Ð/Ò/ð0ús   ‚A ÁA C%Ã!C%Ã$C%c                óX  — 	 | j                   } t        j                  |j                  |«      }t        | t        «      st        | t        «      r | |fd|i|¤ŽS t        |d«      r9| t        j                  k(  r&|t        j                  k7  r|j                  |«      }|S  | |«      j                  |«      }t        |j                  «      dk(  rMt        |«      dk(  r?t        |t        j                  «      s%t        j                  |g«      j                  |«      }|S # t        $ r Y �Œw xY w)a°  
    Reconstruct an object given its type, raw value, and possibly empty
    (None) axes.

    Parameters
    ----------
    typ : object
        A type
    obj : object
        The value to use in the type constructor
    axes : dict
        The axes to use to construct the resulting pandas object

    Returns
    -------
    ret : typ
        An object of type ``typ`` with the value `obj` and possible axes
        `axes`.
    r   r   r3   )r   ÚAttributeErrorr   rr   r   r   r   Ú
issubclassr   r   Úbool_Úastyper7   Úshaper   Úarray)r   rh   r   r   Úres_tÚ	ret_values         r   Úreconstruct_objectr~   ¨   sø   € ð(Ø�h‰hˆô �N‰N˜3Ÿ9™9 eÓ,€Eä�cœ7Ô#¬
°3¼Ô(EÙ�3Ñ,˜eÐ, tÑ,Ð,ô ˆu�fÔ #¬¯©¢/°e¼r¿x¹xÒ6GØ—J‘J˜s“Oˆ	ð Ðñ ˜“H—O‘O EÓ*ˆ	ô
 �—	‘	‹N˜aÒÜ�C“˜A’Ü˜y¬"¯*©*Ô5äŸ™ ) Ó-×4Ñ4°UÓ;ˆIàÐøô/ ò Úðús   ‚D Ä	D)Ä(D))Úreturnz7tuple[partial | type[NDFrame], dict[str, Index] | None])r   ztype[NDFrame]r&   zSequence[Index]r   zdict[str, Index])r   Úbool)r   zCallable[[F], F])*Ú__doc__Ú
__future__r   Ú	functoolsr   r   Útypingr   r   rS   Únumpyr   Úpandas.errorsr   Úpandas.util._exceptionsr	   Úpandas.core.dtypes.genericr
   r   Úpandas.core.baser   Úpandas.core.commonÚcoreÚcommonro   Úpandas.core.computation.commonr   Úcollections.abcr   Úpandas._typingr   Úpandas.core.genericr   Úpandas.core.indexes.apir   r    r   r0   r;   ri   rt   r~   © r!   r   ú<module>r“      s¡   ðñõ #÷÷ó ã å ,Ý 4÷õ
 *ß  Ð  Ý ;áÝ(å å+Ý-ðà<óð JØ	ðJØ"1ðJàóJóGóð$ ñ7/ó ð7/òtó.-r!   