
    J/PhA              	          d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZmZmZ  eej         ej        ej                            d             Z eej        ej        ej                  d             Zd Z eej        ej        ej                  d	             Z eej        ej        ej                  d
             Z eej        ej        ej                  d             Z  eej!        ej        ej                  d             Z" eej#        ej        ej                  d             Z$ eej%        ej        ej                  d             Z& eej'                  d             Z( eej)                   eej*                  d                         Z+ eej,                   eej-                  d                         Z+ edej)                   edej*                  d                         Z. edej/                   ee
j0                  d                         Z1 eej2                  d             Z3 edej        ej                  d             Z4 eej2        ej)        ej5                   eej2        ej)        ej6                   eej2        ej*        ej5                   eej2        ej*        ej6                  d                                                 Z7 edej8        ej9                   edej:        ej;                   edej:        ej<                   edej        ej;                   edej        ej<                  d                                                             Z= eej        ej                  d             Z> eej        d          d             Z? eej@                  d             ZAdS ) z!
Implementation of tuple objects
    N)lower_builtinlower_getattr_generic
lower_castlower_constantiternext_implimpl_ret_borrowedimpl_ret_untrackedRefType)typingtypescgutils)overload_methodoverload	intrinsicc                 6   g }t          |          D ]H\  }}|                     |||j        |         |j        |                   }|                    |           I|                     ||j        t          |                    }t          | ||j        |          S N)	enumeratecastargsreturn_typeappend
make_tupletupler   )	contextbuildersigr   newargsiargcastedress	            Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cpython/old_tupleobj.pynamedtuple_constructorr#      s     GD//  3gsCHQK9KLLv


WcouW~~
F
FCWgsDDD    c                     fd|D             \  }}|                      |j        ||z             }t          | |j        |          S )Nc                 :    g | ]}t          j        |          S  )r   unpack_tuple).0xr   s     r"   
<listcomp>ztuple_add.<locals>.<listcomp>   s&    BBB7'33BBBr$   )r   r   r   )r   r   r   r   leftrightr!   s    `     r"   	tuple_addr.      sS    BBBBTBBBKD%


Wcote|
D
DCWgsDDDr$   c           	         |j         \  }}|\  }}t          j        |t          j                  }	|                    d          }
t          t          |j        |j                            D ]\  }\  }}|                    ||          }|                    ||          }| 	                    |t          j        ||f||f          }|                    |          5  | 	                    ||||f||f          }|                    ||	           |                    |
           d d d            n# 1 swxY w Y    |t          |j                  t          |j                            }|                     t          j        |          }|                    ||	           |                    |
           |                    |
           |                    |	          S )Ncmp_end)r   r   alloca_once_valuetrue_bitappend_basic_blockr   zipr   extract_valuegeneric_compareoperatorneif_thenstorebranchlenget_constantbooleanposition_at_endload)r   r   opr   r   tutvuvr!   bbendr   tatbab	not_equalpredlen_compares                      r"   tuple_cmp_orderedrN   $   s   XFBDAq

#GW-=
>
>C&&y11E RXrx!8!899 " "8B!!!Q''!!!Q''++GX[2r(QPQFSS	__Y'' 	" 	"**7BR1a&IIDMM$$$$NN5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"
 "S]]CMM22K{;;DMM$NN5E"""<<s   AD..D2	5D2	c                    |j         \  }}|\  }}t          |j                  t          |j                  k    r7|                     t          j        d          }t          | ||j        |          S |                     t          j        d          }t          t          |j        |j                            D ]p\  }	\  }
}|	                    ||	          }|	                    ||	          }| 
                    |t          j        |
|f||f          }|                    ||          }qt          | ||j        |          S )NFT)r   r<   r   r=   r>   r	   r   r   r4   r5   r6   r7   eqand_)r   r   r   r   rB   rC   rD   rE   r!   r   rG   rH   rI   rJ   rL   s                  r"   tuple_eqrR   :   s   XFBDAq
28}}BH%%""5=%88!'7COSIII


u}d
3
3C RXrx!8!899 & &8B!!!Q''!!!Q''&&wb"X1vNNll3%%gwEEEr$   c                 z    |                     t          | |||                    }t          | ||j        |          S r   )not_rR   r	   r   r   r   r   r   r!   s        r"   tuple_nerV   I   s7    
,,x#t<<
=
=CgwEEEr$   c                 j    t          | |t          j        ||          }t          | ||j        |          S r   )rN   r7   ltr	   r   rU   s        r"   tuple_ltrY   N   /    
GWhk3
E
ECgwEEEr$   c                 j    t          | |t          j        ||          }t          | ||j        |          S r   )rN   r7   ler	   r   rU   s        r"   tuple_ler]   S   rZ   r$   c                 j    t          | |t          j        ||          }t          | ||j        |          S r   )rN   r7   gtr	   r   rU   s        r"   tuple_gtr`   X   rZ   r$   c                 j    t          | |t          j        ||          }t          | ||j        |          S r   )rN   r7   ger	   r   rU   s        r"   tuple_gerc   ]   rZ   r$   c                     |j                             |          }|                    ||          }t          | |||         |          S )z%
    Fetch a namedtuple's field.
    )fieldsindexr5   r   )r   r   typvalueattrrf   r!   s          r"   namedtuple_getattrrj   d   sF    
 JT""E


u
-
-CWgs5z3???r$   c           	      r      fd|D             }t           t          j        |                    S )z.
    Create a homogeneous tuple constant.
    c                 H    g | ]}                     j        |          S r'   )get_constant_genericdtype)r)   rE   r   r   tys     r"   r+   z%unituple_constant.<locals>.<listcomp>t   s=        **7BHa@@   r$   )r   r   
pack_arrayr   r   ro   pyvalconstss   ```  r"   unituple_constantrt   n   s_           F"g0&AA  r$   c           	            fdt          |          D             }t           t          j        |                    S )z0
    Create a heterogeneous tuple constant.
    c                 Z    g | ]'\  }}                     j        |         |          (S r'   )rm   r   )r)   r   rE   r   r   ro   s      r"   r+   z%unituple_constant.<locals>.<listcomp>   sE     , , ,!Q **7BHQKCC , , ,r$   )r   r   r   pack_structrq   s   ```  r"   rt   rt   z   sg    , , , , , ,#E**, , ,F"g1'6BB  r$   getiterc                 ~   |j         \  }|\  }|                     |t          j        |                    }|                     t          j        d          }t          j        ||j                  }|	                    ||           ||_
        ||_        |                                }	t          | ||j        |	          S )Nr   )r   make_helperr   UniTupleIterr=   intpr   alloca_oncetyper:   rf   r   	_getvaluer   r   )
r   r   r   r   tuptytupitervalindex0indexptrr!   s
             r"   getiter_unitupler      s     hGUES!!'5+=e+D+DEEG!!%*a00F"7FK88HMM&(###GMGM




CWgsDDDr$   iternextc                 F   |j         \  }|\  }|                     |||          }|j        }|j        }	|                    |	          }
|                     t          j        |j        j	                  }|
                    d|
|          }|                    |           |                    |          5  t          j        |j        j        |j        t          j                  }t!          | ||||
g          }| j        r&| j                            ||j        j        |           |                    |           |                    |
|                     t          j        d                    }|                    ||j                   d d d            d S # 1 swxY w Y   d S )N)rh   <   )r   rz   r   rf   r@   r=   r   r|   	containercounticmp_signed	set_validr9   r   	signaturern   getitem_unituple
enable_nrtnrtdecrefyield_addr:   )r   r   r   r   result	tupitertytupiterr   r   idxptridxr   is_validgetitem_siggetitem_outnidxs                   r"   iternext_unitupler      s    (KYIW!!'9G!DDG
-C]F
,,v

C  Y-@-FGGE""3U33H
X		"	" + +&y':'@'0':',z3 3 'w(+Sz3 3  	PKw	(;(A;OOOk"""{{3 4 4UZ C CDDdGM***+ + + + + + + + + + + + + + + + + +s   4CFFFc                     t          | t          j                  rt          |t          j                  sdS |j        fd}|S )z
    Overloads BaseTuple getitem to cover cases where constant
    inference and RewriteConstGetitems cannot replace it
    with a static_getitem.
    Nc                     |          S r   r'   )r   r   idx_vals     r"   getitem_literal_idx_implz5getitem_literal_idx.<locals>.getitem_literal_idx_impl   s    7|r$   )
isinstancer   	BaseTupleIntegerLiteralliteral_value)r   r   r   r   s      @r"   getitem_literal_idxr      s\     sEO,, 3 455tG     $#r$   typed_getitemc                 0   |j         \  }}|\  }}d}t          |          dk    r|                    t          j                  5  | j                            |t          |           d d d            n# 1 swxY w Y   |                     |j	                  }	t          | ||j	        |	          S |                    d          }
|                    d          }|                    ||
          }|                    |
          5  | j                            |t          |           d d d            n# 1 swxY w Y   |                     |j	                  }|                     t          j                  }|                    |          5  |                    |          }d d d            n# 1 swxY w Y   t%          |j                  D ]}|                     t          j        |          }|                    d|z            }|                    ||           |                     t          j        |j         |z             }|                    ||           |                    |          5  |                    ||          }| j                            |j         d         |         |j	                  |j	        k    }|r_|                    |d|z            }|                     |||j         d         |         |j	                  }|                    ||           n5|                    |j        d|z            }|                    ||           |                    |                    ||          |           |                     |           d d d            n# 1 swxY w Y   |!                    |           |                    ||"                                          }	|#                    |	          }	tI          | ||j	        |	          S )Nztuple index out of ranger   ztyped_switch.elseztyped_switch.endztyped_switch.%dzTYPED_VALUE_SLOT%s)name)%r   r<   r9   r   r2   	call_convreturn_user_exc
IndexErrorget_constant_nullr   r	   r3   switch
goto_blockget_value_typer   voidptrphiranger   r=   r|   add_caser5   typing_contextunify_typesallocar   r:   r~   add_incomingbitcastr;   r?   
as_pointerr@   r   )r   r   r   r   r   _r   r   
errmsg_oobr!   bbelserF   r   lrtty	voidptrtyphinoder   kibbikinrh   DOCAST
value_slotr    s                           r"   getitem_typedr      s   xHE1HC.J
5zzQ __W-.. 	: 	:--gz.8: : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
 ''88!'7"%/38 8 	8
 ++,?@@**+=>>V,,'' 	8 	8--gz,68 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 &&s77**5=99	&& 	- 	-kk),,G	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- u{## +	& +	&A%%ej!44B,,->-BCCCOOB$$$ &&uzEK<!3CDDCOOC%%%##C(( #& #&--c155( !/;;CHQKN(+9 9<?OL 	5!(5IA5M "0 "O "OJ$\\'5#(1+a.(+9 9FMM&*5555!(
5IA5M "0 "O "OJMM%444$$W__Z%K%K%(* * *u%%%G#& #& #& #& #& #& #& #& #& #& #& #& #& #& #&J 	&&&oogu'7'7'9'9::ll3 '3?CHHHsI   "A22A69A6"D11D58D5
F,,F03F00D&N""N&	)N&	c                    |j         \  }}|\  }}d}t          |          dk    r|                    t          j                  5  | j                            |t          |           d d d            n# 1 swxY w Y   |                     |j	                  }	t          | ||j	        |	          S |                    d          }
|                    d          }|                    ||
          }|                    |
          5  | j                            |t          |           d d d            n# 1 swxY w Y   |                     |j                  }|                    |          5  |                    |          }d d d            n# 1 swxY w Y   t#          |j                  D ]}|                     t(          j        |          }|                    d|z            }|                    ||           |                     t(          j        |j         |z             }|                    ||           |                    |          5  |                    ||          }|                    |           |                    ||           d d d            n# 1 swxY w Y   |                    |           |}	|j	        |j        k    sJ t7          | ||j	        |	          S )Nr   r   zswitch.elsez
switch.endz	switch.%d)r   r<   r9   r   r2   r   r   r   r   r   r	   r3   r   r   r   rn   r   r   r   r=   r   r|   r   r5   r;   r   r?   r   )r   r   r   r   r   r   r   r   r   r!   r   rF   r   r   r   r   r   r   r   rh   s                       r"   r   r   #  s   
 xHE1HC.J
5zzQ __W-.. 	: 	:--gz.8: : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:
 ''88!'7"%/38 8 	8 ++M::**<88V,,'' 	: 	:--gz.8: : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: &&u{33&& 	) 	)kk%((G	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) u{## 	1 	1A%%ej!44B,,[1_==COOB$$$ &&uzEK<!3CDDCOOC%%%##C(( 1 1--c155u%%%$$UC0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 	&&&%+---- '3?CHHHsI   "A22A69A6"D11D58D5+FFFAJJ"	%J"	static_getitemc                    |j         \  }}|\  }}t          |t                    r_|dk     r|t          |          z  }d|cxk    rt          |          k     sn t	          d||fz            |                    ||          }nt          |t                    r8t          j        ||          |         }	| 	                    ||j
        |	          }nrt          |t          j                  r8|j        }
|j                            |
          }|                    ||          }n t!          d|d|j         d                   t#          | ||j
        |          S )Nr   zcannot index at %d in %szunexpected index z for )r   r   intr<   r   r5   slicer   r(   r   r   r   LiteralStrKeyDictr   re   rf   NotImplementedErrorr   )r   r   r   r   r   idxtyr   r   r!   itemsr   
idx_offsets               r"   static_getitem_tupler   Z  se    8LE5HC#s 8773u::CC$$$$#e**$$$$73,FGGG##C--	C		 
8$Wc2237  #/5AA	E52	3	3 8%\''00
##C44!!%(SS#(1++#7 8 8 	8WgsDDDr$   c                 z    t          |t          j                  st          |t          j                  rt          t	          |          t	          |          k    rt          t          j        |t	          |                    } fdt          |||          D             }                     ||          S )Nc                 H    g | ]\  }}}                     |||          S r'   )r   )r)   rE   ftr   r   s       r"   r+   z"tuple_to_tuple.<locals>.<listcomp>  sA     9 9 9Aq \\'1a++ 9 9 9r$   )	r   r   BaseNamedTupler   r<   r   r(   r4   r   )r   r   fromtytotyvalolditemsr   s   ``     r"   tuple_to_tupler   y  s    65/00 "dE011" "!
6{{c$ii!!#GS#f++>>H9 9 9 9 9&$779 9 9EgtU333r$   rf   c                     d }|S )Nc                 ~    t          t          |                     D ]}| |         |k    r|c S t          d          )Nztuple.index(x): x not in tuple)r   r<   
ValueError)r   rh   r   s      r"   tuple_index_implz%tuple_index.<locals>.tuple_index_impl  sG    s3xx 	 	A1v 9:::r$   r'   )r   rh   r   s      r"   tuple_indexr     s    ; ; ; r$   c                 R    t          | t          j                  r
| j        sd S d S d S )Nc                     dS )NFr'   r*   ys     r"   <lambda>z$in_seq_empty_tuple.<locals>.<lambda>  s    E r$   )r   r   Tupler   s     r"   in_seq_empty_tupler     s<    !U[!! "!' "!!!" " " "r$   )B__doc__r7   numba.core.imputilsr   r   r   r   r   r   r	   r
   
numba.corer   r   r   numba.core.extendingr   r   r   NamedTupleClassVarArgAnyr#   r   r   r.   rN   rP   rR   r8   rV   rX   rY   r\   r]   r_   r`   rb   rc   r   rj   UniTupleNamedUniTuplert   r   
NamedTupler   r{   BORROWEDr   getitemr   r   r|   uintpr   r   StringLiteralLiteralListr   SliceLiteralr   r   r   containsr   r'   r$   r"   <module>r      s    - - - - - - - - - - - - - - - - - - - - . - - - - - - - - - E E E E E E E E E E u$lel59&=&=>>E E ?>E x|U_eo>>E E ?>E  , x{EOU_==F F >=F x{EOU_==F F >=F x{EOU_==F F >=F x{EOU_==F F >=F x{EOU_==F F >=F x{EOU_==F F >=F u+,,@ @ -,@ #$$  %$    !!  "!  y%.))y%-..E E /. *)E" z5-..w  + + !  /.+: 
(
$ $ $" ;;QI QI <;QIh x<<x==x!4ejAAx!4ekBB0I 0I CB BA >= =<0If !8%:MNN!2E4HII!2E4FGG%2FGG%2DEEE E FE HG HG JI ON
E4 EOU_--4 4 .-4& '**  +* 
(
" " " " "r$   