+
    :iC                     f    R t ^ RIHtHtHt ^ RIHt ^ RIHt ]R 4       t	]R 4       t
]R 4       tR# )z
This file provides internal compiler utilities that support certain special
operations with tuple and workarounds for limitations enforced in userland.
)typestypingerrors)alloca_once)	intrinsicc                4    R pV! WVP                   4      pWT3# )a  Return a copy of the tuple with item at *idx* replaced with *val*.

Operation: ``out = tup[:idx] + (val,) + tup[idx + 1:]

**Warning**

- No boundchecking.
- The dtype of the tuple cannot be changed.
  *val* is always cast to the existing dtype of the tuple.
c                     Vw  rEp\        WP                  4      pVP                  WG4       VP                  WuP                  ^ 4      V.RR7      pVP                  Wh4       VP	                  V4      # )    T)inbounds)r   typestoregepload)	contextbuilder	signatureargstupidxvalstackoffptrs	   &&&&     X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/cpython/unsafe/tuple.pycodegentuple_setitem.<locals>.codegen   s_    #GXX.c!UXXa[#$6Fc"||E""    )dtype)	typingctxr   r   r   r   sigs   &&&&  r   tuple_setitemr      s!    # c		
"C<r   c                  aa \        V\        P                  4      '       g   \        P                  ! V4      h\        VP                  4      o\        P                  ! \        P                  SR7      oS! V4      pVV3R lpW#3# )z"Creates a sz-tuple of full slices.)r   countc                    < R  p\         P                  S.p\        P                  ! S.VO5!  pV P	                  \         P                  4      pV P                  S4      pV! S4      V.p	V P                  WWi4      p
V
# )c           	      Z    Tp\        V 4       F  p\        W#\        R R 4      4      pK  	  V# )N)ranger   slice)lengthempty_tupleoutis   &&  r   impl5build_full_slice_tuple.<locals>.codegen.<locals>.impl/   s-    C6]#CE$,=> #Jr   )r   intpr   r   get_value_typeget_constant_undefcompile_internal)r   r   r   r   r*   inner_argtypes	inner_sigll_idx_typer'   
inner_argsressize
tuple_types   &&&&       r   r   'build_full_slice_tuple.<locals>.codegen.   sw    	  **j1$$ZA.A	,,UZZ800<!$'5
&&wiL
r   )	
isinstancer   IntegerLiteralr   RequireLiteralValueintliteral_valueUniTupleslice2_type)tyctxszr   r   r5   r6   s   &&  @@r   build_full_slice_tuplerA   $   sg     b%..//((,,r De&7&7tDJ
R.C" <r   c                    \        V\        P                  4      '       g   RV 2p\        P                  ! V4      hV! V4      pR pW43# )a>  This exists to handle the situation y = (*x,), the interpreter injects a
call to it in the case of a single value unpack. It's not possible at
interpreting time to differentiate between an unpack on a variable sized
container e.g. list and a fixed one, e.g. tuple. This function handles the
situation should it arise.
zBOnly tuples are supported when unpacking a single item, got type: c                     V^ ,          # )r	    )r   r   r   r   s   &&&&r   r   $unpack_single_tuple.<locals>.codegenR   s    Awr   )r8   r   	BaseTupler   UnsupportedError)r?   r   msgr   r   s   &&   r   unpack_single_tuplerI   B   sM     c5??++5"%%c**
c(C<r   N)__doc__
numba.corer   r   r   numba.core.cgutilsr   numba.core.extendingr   r   rA   rI   rD   r   r   <module>rN      sT   
 - , * *  0  :  r   