
    xKgA              	          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j0                  ej0                        d        Zd Z eej6                  ej0                  ej0                        d	        Z eej:                  ej0                  ej0                        d
        Z eej>                  ej0                  ej0                        d        Z  eejB                  ej0                  ej0                        d        Z" eejF                  ej0                  ej0                        d        Z$ eejJ                  ej0                  ej0                        d        Z& eejN                        d        Z( eejR                         eejT                        d               Z+ eejX                         eejZ                        d               Z+ edejR                         edejT                        d               Z. edej^                         ee
j`                        d               Z1 eejd                        d        Z3 edej0                  ej*                        d        Z4 eejd                  ejR                  ejj                         eejd                  ejR                  ejl                         eejd                  ejT                  ejj                         eejd                  ejT                  ejl                        d                             Z7 edejp                  ejr                         edejt                  ejv                         edejt                  ejx                         edej0                  ejv                         edej0                  ejx                        d                                    Z= eej0                  ej0                        d        Z> eej0                  d      d        Z? eej                        d        ZAy) 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                 &   g }t        |      D ]D  \  }}| j                  |||j                  |   |j                  |         }|j	                  |       F | j                  ||j                  t        |            }t        | ||j                  |      S N)	enumeratecastargsreturn_typeappend
make_tupletupler   )	contextbuildersigr   newargsiargcastedress	            Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cpython/tupleobj.pynamedtuple_constructorr#      s     GD/3gsCHHQK9KLv " 

WcoouW~
FCWgsDD    c                     |D cg c]  }t        j                  ||       c}\  }}| j                  ||j                  ||z         }t	        | ||j                  |      S c c}w r   )r   unpack_tupler   r   r   )r   r   r   r   xleftrightr!   s           r"   	tuple_addr*      s^    =ABT7''3TBKD%


Wcoote|
DCWgsDD Cs   A c           	      |   |j                   \  }}|\  }}t        j                  |t        j                        }	|j	                  d      }
t        t        |j                  |j                              D ]  \  }\  }}|j                  ||      }|j                  ||      }| j                  |t        j                  ||f||f      }|j                  |      5  | j                  ||||f||f      }|j                  ||	       |j                  |
       d d d          |t        |j                        t        |j                              }| j!                  t        j"                  |      }|j                  ||	       |j                  |
       |j%                  |
       |j'                  |	      S # 1 sw Y   HxY w)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_orderedrJ   $   sm   XXFBDAq

#
#GW-=-=
>C&&y1E RXXrxx!898B!!!Q'!!!Q'++GX[[2r(QPQFS	__Y'**7BR1a&IDMM$$NN5! ('	 : S]CM2K{;DMM$NN5E"<< ('s   <F11F;	c                    |j                   \  }}|\  }}t        |j                        t        |j                        k7  r8| j                  t        j                  d      }t        | ||j                  |      S | j                  t        j                  d      }t        t        |j                  |j                              D ]d  \  }	\  }
}|j                  ||	      }|j                  ||	      }| j                  |t        j                  |
|f||f      }|j                  ||      }f t        | ||j                  |      S )NFT)r   r8   r   r9   r:   r	   r   r   r0   r1   r2   r3   eqand_)r   r   r   r   r>   r?   r@   rA   r!   r   rC   rD   rE   rF   rH   s                  r"   tuple_eqrN   :   s   XXFBDAq
288}BHH%""5==%8!'7COOSII


u}}d
3C RXXrxx!898B!!!Q'!!!Q'&&wb"X1vNll3%	 :
 gwEEr$   c                 l    |j                  t        | |||            }t        | ||j                  |      S r   )not_rN   r	   r   r   r   r   r   r!   s        r"   tuple_nerR   I   s0    
,,x#t<
=CgwEEr$   c                 l    t        | |t        j                  ||      }t        | ||j                  |      S r   )rJ   r3   ltr	   r   rQ   s        r"   tuple_ltrU   N   -    
GWhkk3
ECgwEEr$   c                 l    t        | |t        j                  ||      }t        | ||j                  |      S r   )rJ   r3   ler	   r   rQ   s        r"   tuple_lerY   S   rV   r$   c                 l    t        | |t        j                  ||      }t        | ||j                  |      S r   )rJ   r3   gtr	   r   rQ   s        r"   tuple_gtr\   X   rV   r$   c                 l    t        | |t        j                  ||      }t        | ||j                  |      S r   )rJ   r3   ger	   r   rQ   s        r"   tuple_ger_   ]   rV   r$   c                 ~    |j                   j                  |      }|j                  ||      }t        | |||   |      S )z%
    Fetch a namedtuple's field.
    )fieldsindexr1   r   )r   r   typvalueattrrb   r!   s          r"   namedtuple_getattrrf   d   s?    
 JJT"E


u
-CWgs5z3??r$   c           	          |D cg c]  }| j                  ||j                  |      ! }}t        | ||t        j                  ||            S c c}w )z.
    Create a homogeneous tuple constant.
    )get_constant_genericdtyper   r   
pack_array)r   r   typyvalrA   constss         r"   unituple_constantrn   n   s_     ! **7BHHa@  "g00&A s   $Ac           	          t        |      D cg c]%  \  }}| j                  ||j                  |   |      ' }}}t        | ||t	        j
                  ||            S c c}}w )z0
    Create a heterogeneous tuple constant.
    )r   rh   r   r   r   pack_struct)r   r   rk   rl   r   rA   rm   s          r"   rn   rn   z   sl     $E*,*$!Q **7BHHQKC*  ,"g11'6B ,s   *Agetiterc                    |j                   \  }|\  }| j                  |t        j                  |            }| j	                  t        j
                  d      }t        j                  ||j                        }|j                  ||       ||_
        ||_        |j                         }	t        | ||j                  |	      S )Nr   )r   make_helperr   UniTupleIterr9   intpr   alloca_oncetyper6   rb   r   	_getvaluer   r   )
r   r   r   r   tuptytupitervalindex0indexptrr!   s
             r"   getiter_unitupler~      s     hhGUES!!'5+=+=e+DEG!!%**a0F""7FKK8HMM&(#GMGM



CWgsDDr$   iternextc                 x   |j                   \  }|\  }| j                  |||      }|j                  }|j                  }	|j	                  |	      }
| j                  t        j                  |j                  j                        }|j                  d|
|      }|j                  |       |j                  |      5  t        j                  |j                  j                  |j                  t        j                        }t!        | ||||
g      }| j"                  r1| j$                  j'                  ||j                  j                  |       |j)                  |       |j+                  |
| j                  t        j                  d            }|j-                  ||j                         d d d        y # 1 sw Y   y xY w)N)rd   <   )r   rs   r   rb   r<   r9   r   ru   	containercounticmp_signed	set_validr5   r   	signatureri   getitem_unituple
enable_nrtnrtdecrefyield_addr6   )r   r   r   r   result	tupitertytupiterr{   rz   idxptridxr   is_validgetitem_siggetitem_outnidxs                   r"   iternext_unitupler      s\    ((KYIW!!'9G!DG
--C]]F
,,v
C  Y-@-@-F-FGE""3U3H
X		"&&y':':'@'@'0':':',zz3 'w(+Sz3 KKw	(;(;(A(A;Ok"{{3 4 4UZZ CDdGMM* 
#	"	"s   9C.F00F9c                     t        | t        j                        rt        |t        j                        sy|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    )rz   r   idx_vals     r"   getitem_literal_idx_implz5getitem_literal_idx.<locals>.getitem_literal_idx_impl   s    7|r$   )
isinstancer   	BaseTupleIntegerLiteralliteral_value)rz   r   r   r   s      @r"   getitem_literal_idxr      s>     sEOO,3 4 45G $#r$   typed_getitemc                    |j                   \  }}|\  }}d}t        |      dk(  r||j                  t        j                        5  | j
                  j                  |t        |       d d d        | j                  |j                        }	t        | ||j                  |	      S |j                  d      }
|j                  d      }|j                  ||
      }|j                  |
      5  | j
                  j                  |t        |       d d d        | j                  |j                        }| j                  t        j                         }|j                  |      5  |j#                  |      }d d d        t%        |j&                        D ]  }| j)                  t        j*                  |      }|j                  d|z        }|j-                  ||       | j)                  t        j*                  |j&                   |z         }|j-                  ||       |j                  |      5  |j/                  ||      }| j0                  j3                  |j                   d   |   |j                        |j                  k(  }|rW|j5                  |d|z        }| j7                  |||j                   d   |   |j                        }|j9                  ||       n2|j5                  |j:                  d|z        }|j9                  ||       j=                  |j?                  ||      |       |jA                  |       d d d         |jC                  |       |j?                  |jE                               }	|jG                  |	      }	tI        | ||j                  |	      S # 1 sw Y   :xY w# 1 sw Y   xY w# 1 sw Y   MxY w# 1 sw Y   ExY w)Nztuple index out of ranger   ztyped_switch.elseztyped_switch.endztyped_switch.%dzTYPED_VALUE_SLOT%s)name)%r   r8   r5   r   r.   	call_convreturn_user_exc
IndexErrorget_constant_nullr   r	   r/   switch
goto_blockget_value_typer   voidptrphiranger   r9   ru   add_caser1   typing_contextunify_typesallocar   r6   rw   add_incomingbitcastr7   r;   
as_pointerr<   r   )r   r   r   r   ry   _rz   r   
errmsg_oobr!   bbelserB   r   lrtty	voidptrtyphinoder   kibbikinrd   DOCAST
value_slotr    s                           r"   getitem_typedr      s>   xxHE1HC.J
5zQ __W--.--gz.8: /
 ''8!'7"%//38 	8
 ++,?@**+=>V,'--gz,68 ( &&s7**5==9	&kk),G ' u{{#A%%ejj!4B,,->-BCCOOB$ &&uzzEKK<!3CDCOOC%##C(--c15( !//;;CHHQKN(+9<?OOL!(5IA5M "0 "OJ$\\'5#((1+a.(+9FMM&*5!(

5IA5M "0 "OJMM%4$$W__Z%K%(*u%G )( $Z 	&oogu'7'7'9:ll3 '3??CHHQ /. (' '& )(s1   "N&"N+N8%DON(+N58OO	c                 ~   |j                   \  }}|\  }}d}t        |      dk(  r||j                  t        j                        5  | j
                  j                  |t        |       d d d        | j                  |j                        }	t        | ||j                  |	      S |j                  d      }
|j                  d      }|j                  ||
      }|j                  |
      5  | j
                  j                  |t        |       d d d        | j                  |j                        }|j                  |      5  |j!                  |      }d d d        t#        |j$                        D ]  }| j'                  t(        j*                  |      }|j                  d|z        }|j-                  ||       | j'                  t(        j*                  |j$                   |z         }|j-                  ||       |j                  |      5  |j/                  ||      }|j1                  |       j3                  ||       d d d         |j5                  |       }	|j                  |j                  k(  sJ t7        | ||j                  |	      S # 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   QxY w)Nr   r   zswitch.elsez
switch.endz	switch.%d)r   r8   r5   r   r.   r   r   r   r   r   r	   r/   r   r   r   ri   r   r   r   r9   r   ru   r   r1   r7   r   r;   r   )r   r   r   r   ry   r   rz   r   r   r!   r   rB   r   r   r   r   r   r   r   rd   s                       r"   r   r   #  sL   
 xxHE1HC.J
5zQ __W--.--gz.8: /
 ''8!'7"%//38 	8 ++M:**<8V,'--gz.8: ( &&u{{3&kk%(G ' u{{#A%%ejj!4B,,[1_=COOB$ &&uzzEKK<!3CDCOOC%##C(--c15u%$$UC0 )( $ 	&%++--- '3??CHHM /. ('
 '& )(s0   "J&"J<J%6J2JJ"%J/2J<	static_getitemc                    |j                   \  }}|\  }}t        |t              rL|dk  r|t        |      z  }d|cxk  rt        |      k  sn t	        d||fz        |j                  ||      }nt        |t              r7t        j                  ||      |   }	| j                  ||j                  |	      }nrt        |t        j                        r:|j                  }
|j                  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   intr8   r   r1   slicer   r&   r   r   r   LiteralStrKeyDictr   ra   rb   NotImplementedErrorr   )r   r   r   r   ry   idxtyrz   r   r!   itemsr   
idx_offsets               r"   static_getitem_tupler   Z  s    88LE5HC#s73u:CC$#e*$73,FGG##C-	C	$$Wc237  #//5A	E522	3%%\\''0
##C4!%(#((1+#7 8 	8WgsDDr$   c                    t        |t        j                        st        |t        j                        rt        t	        |      t	        |      k7  rt        t        j                  ||t	        |            }t        |||      D cg c]  \  }}}| j                  ||||       }	}}}| j                  |||	      S c c}}}w r   )
r   r   BaseNamedTupler   r8   r   r&   r0   r   r   )
r   r   fromtytotyvalolditemsrA   ftr   s
             r"   tuple_to_tupler   y  s    65//0dE001!!
6{c$i!!##GS#f+>H&$797Aq \\'1a+7 
 9gtU339s   	B?rb   c                     d }|S )Nc                 b    t        t        |             D ]  }| |   |k(  s|c S  t        d      )Nztuple.index(x): x not in tuple)r   r8   
ValueError)rz   rd   r   s      r"   tuple_index_implz%tuple_index.<locals>.tuple_index_impl  s2    s3xA1v ! 9::r$   r   )rz   rd   r   s      r"   tuple_indexr     s    ; r$   c                 X    t        | t        j                        r| j                  sd S y y )Nc                      y)NFr   r'   ys     r"   <lambda>z$in_seq_empty_tuple.<locals>.<lambda>  s    Er$   )r   r   Tupler   s     r"   in_seq_empty_tupler     s$    !U[[!!''!! +2!r$   )B__doc__r3   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*   rJ   rL   rN   r4   rR   rT   rU   rX   rY   r[   r\   r^   r_   r   rf   UniTupleNamedUniTuplern   r   
NamedTupler~   rt   BORROWEDr   getitemr   r   ru   uintpr   r   StringLiteralLiteralListr   SliceLiteralr   r   r   containsr   r   r$   r"   <module>r      s[   - - - . - E E u$$lell599&=>E ?E x||U__eoo>E ?E, x{{EOOU__=F >F x{{EOOU__=F >F x{{EOOU__=F >F x{{EOOU__=F >F x{{EOOU__=F >F x{{EOOU__=F >F u++,@ -@ ##$ %     ! "  y%..)y%--.E / *E" z5--.w + ! /+: 
(

$ $" ;QI <QIh x<x=x!4!4ejjAx!4!4ekkB0I C B > =0If !8!8%:M:MN!2!2E4H4HI!2!2E4F4FG%2F2FG%2D2DEE F H H J O
E4 EOOU__-4 .4& '* + 
(

" "r$   