
    I jj                    4   S r SSKJr  SSKJrJr  SSK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  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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_CHECKINGN)
get_option)PerformanceWarning)find_stack_level)ABCDataFrame	ABCSeries)PandasObject)result_type_many)Callable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      n/root/GenerationalWealth/GenerationalWealth/venv/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   :   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>D   s     Fz$**l33s   '))any)termss    r    _any_pandas_objectsr2   @   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>N   s     4edzze   )lenr!   r2   r   )r1   term_valuesfs     r    wrapper&_filter_special_cases.<locals>.wrapperH   sO     u:?.uQx884e4 #5))#[1477xr"   )r   )r<   r=   s   ` r    _filter_special_casesr?   G   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" [        [        X4SS9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Hl  u  nn[        [%        U5      U	SS9 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[/        S
5      (       aI  US:  aC  US:  a=  SU ST U   R0                  < SUS S3n[2        R4                  " U[6        [9        5       S9  UR;                  UUS9nT U   R=                  U5        GM$     T U   R=                  T U   R                  R>                  5        GMo     U[A        X5      4$ s  snnf s  snf )Nr   r   )SeriesT)strictr5   c              3  B   >#    U  H  nTU   R                   v   M     g 7fr$   r7   )r-   r(   r1   s     r    r.   _align_core.<locals>.<genexpr>i   s     5*Q%(..*s   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)!r%   r   r   ndimpandasrA   dictzipidxmax_constructorr   r:   r   r   indexis_unionitemsranger   log10maxabsr   r)   warningswarnr   r	   rE   updatevaluesr   )r1   r(   r   
term_index	term_dimsrA   ndimsbiggestr   r   naxesgt_than_one_axisr   	is_seriesis_series_and_gt_one_axisrI   rS   axitmrJ   ti	transpose	reindexerterm_axis_sizereindexer_sizeordmwobjs   `                           r    _align_corern   Y   s   #,U#3S#3wtzz67R!#3JS.89jq$$jI94J$?@AE 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?KD%qBr9%%&r95C%!)	/8DOe	!$RWWT]!3!$YxxAs>N+J'K LM566	&%/ 8v >>>CAhmm=N O((,Sz1JL 
 MM$6CSCU jjj6a$5 @8 	aa--.; !> #C...u T9s   !K5K5#K;c                4    [        [        R                  " U 5      5      n [        S U  5       5      (       a  [        S U  5       6 R                  SS4$ U  Vs1 s H:  n[	        UR
                  [        5      (       d  M$  UR
                  R                  iM<     nn[!        U5      S:X  a  UR#                  5       OSn[%        U 5      u  pXU4$ ! [         a    [	        U R
                  [        [        45      (       ap  [        U R
                  5      n[	        U R
                  [        5      (       a  U R
                  R                  OSnU[        XR
                  R                  5      U4s $ [        R                  " U R                  5      SS4s $ f = fs  sn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>>er9   c              3  8   #    U  H  oR                   v   M     g 7fr$   r7   r,   s     r    r.   rr      s     !?**r9   r5   )listcomflatten	TypeErrorr   r   r   r
   r   r)   r   r   r   result_typeallr   r:   poprn   )r1   r   r)   r   namesr   s         r    align_termsr|      s9   	6S[['( 
,e
,,,!?!?@EEtTQQ */T*TZZ2S_TZZ__ETe*/599;tD E"ICd?%  6ekkI|#<==u{{#C'1%++y'I'I5;;##tD+C1A1ABDHH~~ejj)4556 Us$   C #F?FBF,#FFc                    U R                   n [        R                  " UR                  U5      n[        U [        5      (       d.  [        U [        5      (       a  Uc  U " U4SU0UD6$ U " U4XTS.UD6$ [        US5      (       a;  U [        R                  :X  a'  U[        R                  :w  a  UR                  U5      nU$ U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N=f = 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   r)   r   r5   )r   AttributeErrorr   rx   r   r   r   
issubclassr   r   bool_r:   shaper   arrayastype)r   rm   r   r   r)   res_t	ret_values          r    reconstruct_objectr      s   (hh NN399e,Ec7##
3(E(E<s0%040037e7$77 uf#/erxx6GJJsO	  JJsO	
 		NaCAy"**55)-44U;I3  s   D> >
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   rX   numpyr   pandas._config.configr   pandas.errorsr   pandas.util._exceptionsr	   pandas.core.dtypes.genericr
   r   pandas.core.baser   pandas.core.commoncorecommonru   pandas.core.computation.commonr   collections.abcr   r   pandas._typingr   pandas.core.genericr   pandas.core.indexes.apir   r!   r   r2   r?   rn   r|   r    r"   r    <module>r      s    # !   , , 4
 *     ;
 !+-< J	J"1JJG$ ;/ ;/|8/r"   