
    Mh                    (   S r SSKJr  SSKJrJr  SSKJrJr  SSK	r	SSK
rSSKJr  SSKJr  SSKJrJr  SS	KJr  SSKJs  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 jr#      SS jr$SS jr%SS jr&\&S 5       r'S r(S r)g)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                Z   S n[        U R                  [        R                  5      (       a/  [	        [        R
                  U R                  R                  S9nX!4$ [        U R                  5      n[        U R                  S5      (       a  [        X R                  R                  5      nX!4$ )N)dtypeaxes)
isinstancevaluenpndarrayr   
asanyarrayr   typehasattr_zip_axes_from_typer   )termr   typs      O/var/www/html/env/lib/python3.13/site-packages/pandas/core/computation/align.py_align_core_single_unary_opr    '   s}     %)D$**bjj))bmm4::+;+;< 9	 4::4::v&&&sJJOO<D9    c                h    [        U R                  5       VVs0 s H
  u  p#X1U   _M     snn$ s  snnf N)	enumerate_AXIS_ORDERS)r   new_axesinames       r   r   r   7   s2     .7s7G7G-HI-H'!D1+-HIIIs   .c                &    [        S U  5       5      $ )z:
Check a sequence of terms for instances of PandasObject.
c              3  V   #    U  H  n[        UR                  [        5      v   M!     g 7fr#   )r   r   r   .0r   s     r   	<genexpr>&_any_pandas_objects.<locals>.<genexpr>A   s     Fz$**l33s   '))any)termss    r   _any_pandas_objectsr1   =   s     FFFFr!   c                0   ^  [        T 5      U 4S j5       nU$ )Nc                   > [        U 5      S:X  a  [        U S   5      $ S U  5       n[        U 5      (       d
  [        U6 S 4$ T" U 5      $ )N   r   c              3  8   #    U  H  oR                   v   M     g 7fr#   r   r+   s     r   r-   9_filter_special_cases.<locals>.wrapper.<locals>.<genexpr>K   s     4edzze   )lenr    r1   r   )r0   term_valuesfs     r   wrapper&_filter_special_cases.<locals>.wrapperE   sO     u:?.uQx884e4 #5))#[1477xr!   )r   )r;   r<   s   ` r   _filter_special_casesr>   D   s     
1X  Nr!   c                  ^  [        T 5       VVs/ s H$  u  p[        UR                  S5      (       d  M"  UPM&     nnnU Vs/ s H  nT U   R                  R                  PM     nnSSKJn  U" [        [        X45      5      5      nT UR                  5          R                  nUR                  nUR                  n	[        U	5      n
U
S:  nU 4S jU 5        H  n[        U[        5      nU=(       a    Un[        UR                  5       HU  u  nnU(       a  U
S-
  UR                  nnOUUnnU	U   R                  U5      (       a  M>  U	U   R!                  U5      U	U'   MW     M     UR#                  5        GHf  u  nn[        [%        U5      U	5       GH  u  nnT U   R                  n[        US5      (       d  M)  [        U[        5      =(       a    U
S:  nU(       a  XS-
     OUn[        UR                  U   5      n[        U5      n[&        R(                  " [+        S[-        UU-
  5      5      5      nUS:  aK  US:  aE  SU S	[/        T U   R0                  5       S
US S3n[2        R4                  " U[6        [9        5       S9  UR;                  UUSS9nT U   R=                  U5        GM     T U   R=                  T U   R                  R>                  5        GMi     U[A        X5      4$ s  snnf s  snf )Nr   r   )Seriesr4   c              3  B   >#    U  H  nTU   R                   v   M     g 7fr#   r6   )r,   r'   r0   s     r   r-   _align_core.<locals>.<genexpr>f   s     5*Q%(..*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   r9   r   r   indexis_unionitemsranger   log10maxabsreprr(   warningswarnr   r	   rC   updatevaluesr   )r0   r'   r   
term_index	term_dimsr@   ndimsbiggestr   r   naxesgt_than_one_axisr   	is_seriesis_series_and_gt_one_axisrF   rQ   axitmrH   ti	transpose	reindexerterm_axis_sizereindexer_sizeordmwobjs   `                           r   _align_corerm   V   s   #,U#3S#3wtzz67R!#3JS.89jq$$jI94J234E ELLN#))G


C<<DIEqy5*5ui0	$-$B2B!$UZZ0KD%(!)U[[CCC8<<$$8>>#.R 1	 6 ;;=4uT{D1KD%qBr9%%&r95C%!)	/8DOe	!$RWWT]!3!$YxxAs>N+J'K LM195!87v >>>B58==>Q=R S((,Sz1JL 
 MM$6CSCU jjEjBa$- 20 	aa--.3 !6 #C...m T9s   !K0K0#K6c                    [        [        R                  " U 5      5      n [        S U  5       5      (       a  [        S U  5       6 R                  S4$ [        U 5      u  pX4$ ! [         a    [	        U R
                  [        [        45      (       a8  [        U R
                  5      nU[        XR
                  R                  5      4s $ [        R                  " U R                  5      S4s $ f = f)z
Align a set of terms.
Nc              3  8   #    U  H  oR                   v   M     g 7fr#   )	is_scalarr+   s     r   r-   align_terms.<locals>.<genexpr>   s     
,ed>>er8   c              3  8   #    U  H  oR                   v   M     g 7fr#   r6   r+   s     r   r-   rq      s     !?**r8   )listcomflatten	TypeErrorr   r   r   r
   r   r   r   r   result_typeallr   rm   )r0   r   r   s      r   align_termsry      s    0S[['( 
,e
,,,!?!?@EEtKK E"IC9  0ekkI|#<==u{{#C+C1A1ABBB~~ejj)4//0s   A# #A%C/
"C/.C/c                    U R                   n [        R                  " UR                  U5      n[        U [        5      (       d   [        U [        5      (       a  U " U4SU0UD6$ [        US5      (       a;  U [        R                  :X  a'  U[        R                  :w  a  UR                  U5      nU$ U " U5      R                  U5      n[        UR                  5      S:X  aT  [        U5      S:X  aE  [        U[        R                  5      (       d&  [        R                  " U/5      R                  U5      nU$ ! [         a     GN5f = f)ap  
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   r4   )r   AttributeErrorr   rw   r   r   r   
issubclassr   r   bool_astyper9   shaper   array)r   rl   r   r   res_t	ret_values         r   reconstruct_objectr      s   (hh NN399e,Ec7##
3(E(E3,e,t,, uf#/erxx6GJJsO	  HOOE*	
 		NaCAy"**55)-44U;I/  s   D6 6
EE)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   rW   numpyr   pandas.errorsr   pandas.util._exceptionsr	   pandas.core.dtypes.genericr
   r   pandas.core.baser   pandas.core.commoncorecommonrt   pandas.core.computation.commonr   collections.abcr   pandas._typingr   pandas.core.genericr   pandas.core.indexes.apir   r    r   r1   r>   rm   ry   r    r!   r   <module>r      s    #   , 4
 *     ;( +-< J	J"1JJG$ 7/ 7/t.-r!   