
    Pij                       d Z ddlmZ ddlmZmZ ddl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 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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+dS )$z!
Core eval alignment algorithms.
    )annotations)partialwraps)TYPE_CHECKINGN)
get_option)PerformanceWarning)find_stack_level)ABCDataFrame	ABCSeries)PandasObject)result_type_many)CallableSequence)F)NDFrame)Indexreturn7tuple[partial | type[NDFrame], dict[str, Index] | None]c                   d }t          | j        t          j                  r&t	          t          j        | j        j                  }nCt          | 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      q/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/core/computation/align.py_align_core_single_unary_opr#   *   sz     %)D$*bj)) =bm4:+;<<<4:4:v&& 	=&sDJO<<D9    r!   type[NDFrame]new_axesSequence[Index]dict[str, Index]c                D    fdt          | j                  D             S )Nc                (    i | ]\  }}||         S  r+   ).0inamer&   s      r"   
<dictcomp>z'_zip_axes_from_type.<locals>.<dictcomp>=   s#    III'!TD(1+IIIr$   )	enumerate_AXIS_ORDERS)r!   r&   s    `r"   r   r   :   s+     JIIIYs7G-H-HIIIIr$   boolc                4    t          d | D                       S )zB
    Check a sequence of terms for instances of PandasObject.
    c              3  J   K   | ]}t          |j        t                    V  d S N)r   r   r   r,   r    s     r"   	<genexpr>z&_any_pandas_objects.<locals>.<genexpr>D   s.      FFz$*l33FFFFFFr$   )any)termss    r"   _any_pandas_objectsr:   @   s!     FFFFFFFFr$   Callable[[F], F]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  $   K   | ]}|j         V  d S r5   r   r6   s     r"   r7   z9_filter_special_cases.<locals>.wrapper.<locals>.<genexpr>N   s$      44dtz444444r$   )lenr#   r:   r   )r9   term_valuesfs     r"   wrapperz&_filter_special_cases.<locals>.wrapperH   sh     u::??.uQx88844e444 #5)) 	8#[1477qxxr$   )r   )rC   rD   s   ` r"   _filter_special_casesrE   G   s3    
1XX    X Nr$   c                    d t                     D             } fd|D             }ddlm}  |t          t	          ||d                              } |                                         j        }|j        }|j        }t          |          }|dk    }	 fd|D             D ]}
t          |
t                    }|o|	}t          |
j                  D ]Q\  }}|r|dz
  |
j        }}n||}}||                             |          s||                             |          ||<   R|                                D ]\  }}t	          t!          |          |d	          D ]6\  }} |         j        }t#          |d
          rt          |t                    o|dk    }|r||dz
           n|}t          |j        |                   }t          |          }t%          j        t)          dt+          ||z
                                }t-          d          rL|dk    rF|dk    r@d| d |         j        d|dd}t1          j        |t4          t7                                 |                    ||          } |                             |           8 |                              |         j        j                   |t?          ||          fS )Nc                B    g | ]\  }}t          |j        d           |S )r   )r   r   )r,   r-   r    s      r"   
<listcomp>z_align_core.<locals>.<listcomp>[   s-    SSS4wtz67R7RS!SSSr$   c                4    g | ]}|         j         j        S r+   )r   ndimr,   r-   r9   s     r"   rH   z_align_core.<locals>.<listcomp>\   s"    999q$999r$   r   )SeriesT)strictr>   c              3  2   K   | ]}|         j         V  d S r5   r@   rK   s     r"   r7   z_align_core.<locals>.<genexpr>i   s)      55Q%(.555555r$   Freindexperformance_warningsi'  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
stacklevel)axis) r0   pandasrL   dictzipidxmaxr   _constructorr   rA   r   r   indexis_unionitemsranger   r   log10maxabsr   r.   warningswarnr   r	   rO   updatevaluesr   )r9   
term_index	term_dimsrL   ndimsbiggestr!   r   naxesgt_than_one_axisr   	is_seriesis_series_and_gt_one_axisrS   r\   axitmr-   rJ   ti	transpose	reindexerterm_axis_sizereindexer_sizeordmwobjs   `                          r"   _align_corerw   Y   s-   SS9U#3#3SSSJ9999j999IF4J	$???@@AAE ELLNN#)G

C<DIIEqy5555*555 / /ui00	$-$B2B!$UZ00 	/ 	/KD%( &!)U[CC8<<$$ /8>>#..R	/ ;;== / /4uT{{D??? 	% 	%KD%qBr9%% %&r955C%!)	/8CDOOe	!$RWT]!3!3!$YxAs>N+J'K'K L LMM566		&%//L L L>CAhmL L(,KL L L 
 M$6CSCUCU    jjj66a$$$aa-....#C....r$   c                   	 t          t          j        |                     } n# t          $ r t	          | j        t          t          f          r[t          | j                  }t	          | j        t                    r| j        j	        nd}|t          || j        j                  |fcY S t          j        | j                  ddfcY S w xY wt          d | D                       rt          d | D              j        ddfS d | D             }t!          |          dk    r|                                nd}t%          |           \  }}|||fS )z
    Align a set of terms.
    Nc              3  $   K   | ]}|j         V  d S r5   )	is_scalarr6   s     r"   r7   zalign_terms.<locals>.<genexpr>   s$      
,
,d4>
,
,
,
,
,
,r$   c              3  $   K   | ]}|j         V  d S r5   r@   r6   s     r"   r7   zalign_terms.<locals>.<genexpr>   s$      !?!?$*!?!?!?!?!?!?r$   c                Z    h | ](}t          |j        t                    |j        j        )S r+   )r   r   r   r.   r6   s     r"   	<setcomp>zalign_terms.<locals>.<setcomp>   s-    TTT*TZ2S2STTZ_TTTr$   r>   )listcomflatten	TypeErrorr   r   r   r
   r   r.   r   r   r   result_typeallr   rA   poprw   )r9   r!   r.   namesr   s        r"   align_termsr      s`   	6S[''(( 6 6 6ekI|#<== 	Iu{##C'1%+y'I'IS5;##tD+C1ABBDHHHH~ej))455556 
,
,e
,
,
,,, R!?!?!?!?!?@EtTQQ UTTTTEe**//599;;;tD E""ICd?s   !$ BC	*C	C	c                   	 | j         } n# t          $ r Y nw xY wt          j        |j        |          }t          | t                    s.t          | t                    r| | |fd|i|S  | |f||d|S t          |d          r6| t          j
        k    r&|t          j
        k    r|                     |          }n|                     |          }t          |j                  dk    rUt          |          dk    rBt          |t          j                  s(t          j        |g                              |          }|S )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`.
    Nr   )r   r.   r   r>   )r   AttributeErrorr   r   r   r   r   
issubclassr   r   bool_rA   shaper   arrayastype)r!   rv   r   r   r.   res_t	ret_values          r"   reconstruct_objectr      sR   (h    N39e,,Ec7## 8
3(E(E 8<3s00%04000s37e$77$777 uf <#//erx6G6GJJsOO		JJsOO	
 	NNaCAy"*55  )--44U;;Is   
 
)r   r   )r!   r%   r&   r'   r   r(   )r   r2   )r   r;   ),__doc__
__future__r   	functoolsr   r   typingr   ra   numpyr   pandas._config.configr   pandas.errorsr   pandas.util._exceptionsr	   pandas.core.dtypes.genericr
   r   pandas.core.baser   pandas.core.commoncorecommonr   pandas.core.computation.commonr   collections.abcr   r   pandas._typingr   pandas.core.genericr   pandas.core.indexes.apir   r#   r   r:   rE   rw   r   r   r+   r$   r"   <module>r      s    # " " " " "        !                , , , , , , , , , , , , 4 4 4 4 4 4       
 * ) ) ) ) )                   ; ; ; ; ; ; 	.       
 !     ++++++------    J J J JG G G G   $ ;/ ;/ ;/|  8/ / / / /r$   