
    GJjP                        d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl	m
Z
 d dlmZmZmZ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mZ d dlmZmZ d dlm Z  d d	l!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- d dl.m/Z/  eej`                        d        Z1 eejd                  ejf                  ejf                        d        Z4 eejj                  ejf                  ejf                        d        Z6 eejj                  ejn                  ejn                        d        Z8 eejj                  ejr                  ejr                        d        Z: eejv                  ejx                  ejx                         eejv                  ejz                  ejz                        d               Z> eej~                  ejx                  ejx                         eej~                  ejz                  ejz                        d               Z@d ZA  eejv                         eAd               eej~                         eAd              eej                        d        ZC eejf                  ej                         eej                  ej                         eejr                  ej                        d                      ZE eej                  ejf                         eej                  ejr                         eej                  ej                        d                      ZF eej                  ej                  ej                        d        ZJ eej                  ej                  ej                  ejf                        d        ZLd ZMd ZN eeOej                        d        ZQ eeOej                  ej                        d        ZR eeSejf                        d         ZTed!        ZU eeV      d"        ZW eeSej                        d#        ZY eeZ ej                  ejf                              d$        Z\ eej                  ejf                        d%        Z^ eej                        d&        Z` eej                        d'        Zb eej                        d(        Zc eedejf                        d)        Ze eefej                        d*        Zh eeiej                        d+        Zk ed,ejf                  ejf                        d-        Zl eemej                        d.        Zo eepej                        d/        Zr ees      d0        Zt eesej                        d1        Zv eep      d2        Zw eepd34      d5        Zxd d6lymzZzm{Z{ d d7l|mZm}Z}  eezej                  ej                         eezej                   ej                        d8               Z ee      d9        Z ee      d:        Z ee      d;        Z ee      d<        Z ee      d=        Z ee      d>        Zed?        Zed@        Z e}dA       Z e}dB       Ze}dC        Z ee      dD        Z ee      dE        Z eej"                   ej                  ejf                              dF        Z ee      dWdG       Z ee      dH        Z ee      dI        Z ee      dJ        ZdK Z ee      dL        ZedM        Z edNdO      Z e       Z eedP      dQ        Z ee      dR        ZedS        Z ee      dT        Z ee      dU        Z ee      dXdV       Zy)Y    )
namedtupleN)reduce)ir)lower_builtinlower_getattrlower_getattr_generic
lower_castlower_constantiternext_implcall_getitercall_iternextimpl_ret_borrowedimpl_ret_untrackednumba_typeref_ctor)typingtypesutilscgutils)overload	intrinsic)
Conversion)TypingErrorLoweringErrorNumbaExperimentalFeatureWarningNumbaTypeErrorRequireLiteralValueNumbaPerformanceWarning)AbstractTemplateinfer_global	signature)literal_unroll)as_numba_typec                 B    t        | t        j                        rd }|S y )Nc                     | S N )vals    `/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/numba/cpython/builtins.pyimplzol_truth.<locals>.impl    s    J    
isinstancer   Boolean)r'   r)   s     r(   ol_truthr.      s    #u}}%	 &r*   c                 r    | j                  t        j                  |      }|j                   |||            S )z3
    Implement `x is not y` as `not (x is y)`.
    )get_functionoperatoris_not_)contextbuildersigargsis_impls        r(   generic_is_notr9   %   s0    
 ""8<<5G<<.//r*   c                    |j                   \  }}||k(  rC|j                  rd}t        |      	 | j                  t        j
                  |      } |||      S t        j                  S # t        $ r t        j                  cY S w xY w)z-
    Default implementation for `x is y`
    zno default `is` implementation)	r7   mutabler   r0   r1   eqNotImplementedErrorr   	false_bit)r4   r5   r6   r7   lhs_typerhs_typemsgeq_impls           r(   
generic_isrC   .   s    
 Hh86#C((2%228;;DG
 #7D11    + -",,,-s    A( (BBc                     |j                   \  }}||k(  rY|j                  |d   t        j                        }|j                  |d   t        j                        }|j	                  d||      S t        j
                  S )z7
    Implementation for `x is y` for Opaque types.
    r      z==)r7   ptrtointr   intp_ticmp_unsignedr>   )r4   r5   r6   r7   r?   r@   lhs_ptrrhs_ptrs           r(   	opaque_isrK   H   so    
 Hh8""47GNN;""47GNN;$$T7G<<   r*   c                    |\  }}|j                   \  }}| j                  |||t        j                        }| j                  |||t        j                        }	| j	                  t
        j                  t        j                  t        j                  t        j                  t        j                              }
 |
|||	f      S )z
    Implementation for `x is y` for types derived from types.Boolean
    (e.g. BooleanLiteral), and cross-checks between literal and non-literal
    booleans, to satisfy Python's behavior preserving identity for bools.
    )	r7   castr   booleanr0   r1   r<   r   r    )r4   r5   r6   r7   arg1arg2	arg1_type	arg2_type_arg1_arg2rB   s              r(   bool_is_implrU   X   s     JD$88IyLL$	5==AELL$	5==AE""u}}EG 7UEN++r*   c                     |j                   \  }}d}|j                  |j                  k(  rd}t        j                  t        j                  d      |      }t        | ||j                  |      S Nr   rE   r7   literal_valuer   ConstantIntTyper   return_typer4   r5   r6   r7   rO   rP   r'   ress           r(   const_eq_implr_   k   \     JD$
CT///
++bjjmS
)CgwEEr*   c                     |j                   \  }}d}|j                  |j                  k7  rd}t        j                  t        j                  d      |      }t        | ||j                  |      S rW   rX   r]   s           r(   const_ne_implrb   w   r`   r*   c                       fd}|S )Nc                 ,   t        | t        j                        }t        |t        j                        }|r	|rfd}|S ||z  rNt        | t        j                        }t        |t        j                        }|s|rrd }|S d }|S  fd}|S y )Nc                     S r%   r&   )abr'   s     r(   r)   z/gen_non_eq.<locals>.none_equality.<locals>.impl   s    
r*   c                 
    | |u S r%   r&   rf   rg   s     r(   r)   z/gen_non_eq.<locals>.none_equality.<locals>.impl   s     Avr*   c                 
    | |uS r%   r&   ri   s     r(   r)   z/gen_non_eq.<locals>.none_equality.<locals>.impl   s    #$6)r*   c                     S r%   r&   )rf   rg   nvals     r(   r)   z/gen_non_eq.<locals>.none_equality.<locals>.impl   s    Kr*   )r,   r   NoneTypeOptional)	rf   rg   a_noneb_noner)   
a_optional
b_optionalrl   r'   s	          @r(   none_equalityz!gen_non_eq.<locals>.none_equality   s    Au~~.Au~~.fKf_#Au~~6J#Au~~6J Z&
 * w + r*   r&   )r'   rs   s   ` r(   
gen_non_eqrt      s    > r*   TFc                     |j                         }| j                  ||||      }| j                  ||      } || ||||      S )z>
    Deferred.__getattr__ => redirect to the actual type.
    )getrM   get_getattr)r4   r5   typvalueattr
inner_typer'   imps           r(   deferred_getattrr}      sH    
 J
,,wsJ
7C


j$
/CwS$77r*   c                     | j                  ||||j                               }| j                  |   }|j                  ||j	                         |      S r%   )rM   rv   data_model_managersetmake_uninitialized)r4   r5   fromtytotyr'   actualmodels          r(   any_to_deferredr      sJ     \\'3
;F&&t,E99We668&AAr*   c                     | j                   |   }|j                  ||      }| j                  |||j                         |      S r%   )r   rv   rM   )r4   r5   r   r   r'   r   s         r(   deferred_to_anyr      s?     &&v.E
))GS
!C<<fjjlD99r*   c                     |\  }}|j                  ||g      }|j                  |      }t        | ||j                  |      S r%   )geploadr   r\   )r4   r5   r6   r7   base_ptridxelem_ptrr^   s           r(   getitem_cpointerr      s@    MHc{{8cU+H
,,x
 CWgsDDr*   c                 Z    |\  }}}|j                  ||g      }|j                  ||       y r%   )r   store)r4   r5   r6   r7   r   r   r'   r   s           r(   setitem_cpointerr      s.    Hc3{{8cU+HMM#x r*   c                      t        |      t        |      k(  s	J ||f       t        |      dkD  sJ  fd}t        ||      }t        ||      \  }}|S )Nr   c                 Z   | \  }}|\  }}j                   j                  ||      }|J j                  |||      }j                  |||      }t        j                  t
        j                  ||      }j                  |      } |||f      }	j                  |	||      }
||
fS r%   )	typing_contextunify_typesrM   r   r    r   rN   r0   select)accumulatorry   acctyaccvtyvtycmpsiggepredr^   r5   cmpopr4   s              r(   binary_minmaxz do_minmax.<locals>.binary_minmax   s     !
sQ##//s;~~ll7C3LL!S"-!!%--R8!!%0'As8$nnT1c*3wr*   )lenzipr   )	r4   r5   argtysr7   r   r   typvalsrestyresvals	   ``  `    r(   	do_minmaxr      sZ    v;#d)#3fd^3#t9q== &$G='2ME6Mr*   c                 "    d| j                   fz  S )Nzllvm.rint.f%d)bitwidth)tps    r(   _round_intrinsicr      s    bkk^++r*   c                 r   |j                   d   }| j                  |      }|j                  }t        j                  ||g      }t        j                  ||t        |            }|j                  ||      }	|j                  |	| j                  |j                              }	t        | ||j                  |	      S Nr   )r7   get_value_typemoduler   FunctionTyper   get_or_insert_functionr   callfptosir\   r   )
r4   r5   r6   r7   flttylltyr   fntyfnr^   s
             r(   round_impl_unaryr      s    HHQKE!!%(D^^F??4$(D		'	'6Fu6M	NB
,,r4
 C
..g44S__E
FCgwEEr*   c                     |j                   d   }t        j                  t        |      t	        j
                  ||            fd}| j                  ||||      }t        | ||j                  |      S )Nr   c                    t        j                  |       st        j                  |       r| S |dk\  rD|dkD  rd|dz
  z  }d}nd|z  }d}| |z  |z  }t        j                  |      r| S  |      |z  |z  S d| z  }| |z  } |      |z  S )Nr      g      $@gMDg      ?)mathisinfisnan)xndigitspow1pow2y_rounds        r(   round_ndigitsz(round_impl_binary.<locals>.round_ndigits  s    ::a=DJJqMHa<| "-wTT!Azz!}1I$,, WH%DDA!9t##r*   )	r7   r   ExternalFunctionr   r   r    compile_internalr   r\   )r4   r5   r6   r7   r   r   r^   r   s          @r(   round_impl_binaryr      sl    HHQKE ##!1!1%!?AF$. 
"
"7M3
ECgwEEr*   c                     |j                   \  }|\  }| j                  ||||j                        }t        | ||j                  |      S r%   r7   rM   r\   r   )r4   r5   r6   r7   r   r'   r^   s          r(   
float_implr   $  sA    88DRES
,,wR
9CgwEEr*   c                     t        |t        j                        r|}nt        j                  }d }t	        ||      }||fS )Nc                     |j                   \  }|\  }| j                  ||||j                        }t        | ||j                  |      S r%   r   )r4   r5   r    r7   r   r'   r^   s          r(   r)   zcast_int.<locals>.impl2  sE    ~~ll7CY-B-BC!'7I4I4I3OOr*   )r,   r   Integerintpr    )	typingctxr   rettyr)   r6   s        r(   cast_intr   +  s<    !U]]#

P E1
C9r*   c                     t        | t        j                  t        j                  t        j                  f      rd }|S y )Nc                     t        |       S r%   )r   r   s    r(   r)   zol_int.<locals>.impl>  s    A;r*   )r,   r   r   r-   Float)r   r)   s     r(   ol_intr   ;  s1    !emmU]]EKK@A	 	 Br*   c                     |j                   \  }| j                  |j                  t        |j                              }t        | ||j                  |      S r%   )r7   get_constantr\   floatrY   r   )r4   r5   r6   r7   r   r^   s         r(   float_literal_implr   C  sC    88DR


sb6F6F0G
HCgwEEr*   c                    |j                   }|j                  }t        |j                        dk(  r|j                  \  }|\  }t	        |t
        j                        r,| j                  ||||      }t        | ||j                   |      S | j                  ||||      }	| j                  |d      }
nTt        |j                        dk(  r<|j                  \  }}|\  }	}
| j                  ||	||      }	| j                  ||
||      }
| j                  ||      }	|_        
|_        |j                         }t        | ||j                   |      S )NrE   r      )r\   underlying_floatr   r7   r,   r   ComplexrM   r   r   make_complexrealimag	_getvalue)r4   r5   r6   r7   complex_type
float_typeargtyargr^   r   r   realtyimagtycmplxs                 r(   complex_implr   J  s%   ??L..J
388}((eU]]+,,wULAC%gwMM<<eZ@D''
A6D	SXX!	88t||GT6:>||GT6:>  ,7EEJEJ
//
CgwEEr*   c                 :   t        |j                  t        j                        rG|j                  j                  fd}| j                  ||||      }t        | ||j                  |      S |\  }|j                  \  }| j                  ||||j                        S )z1
    Call a number class, e.g. np.int32(...)
    c                  2    t        j                  |       S )N)dtype)nparray)arg_hackdts    r(   fooznumber_constructor.<locals>.foon  s    88HB//r*   )	r,   r\   r   Arrayr   r   r   r7   rM   )	r4   r5   r6   r7   r   r^   r'   valtyr   s	           @r(   number_constructorr   f  s    
 #//5;;/__""	0&&wS$?!'7COOSII ((||GS%AAr*   c                 "    | j                         S r%   get_dummy_valuer4   r5   r   pyvals       r(   constant_dummyr   |  s     ""$$r*   c                     | j                  |      }| j                  ||j                  |      t        |            }|j	                  ||      S )N)info)get_function_pointer_typeadd_dynamic_addrget_pointerstrbitcast)r4   r5   r   r   ptrtyptrvals         r(   constant_function_pointerr    sL    --b1E%%gr~~e/D+.u: & 7F??65))r*   c                 x    || j                  ||j                        S | j                  ||j                  |      S r%   )make_optional_nonetypemake_optional_valuer   s       r(   constant_optionalr    s7    }))'277;;**7BGGUCCr*   c                 "    | j                         S )z&
    One-argument type() builtin.
    r   )r4   r5   r6   r7   s       r(   	type_implr    s    
 ""$$r*   c                 F    |j                   \  }|\  }t        | |||      }|S r%   )r7   r   )r4   r5   r6   r7   r   r'   itervals          r(   	iter_implr    s)    
((CBDC7GR5GNr*   c                 L   |j                   \  }|\  }t        | |||      }|j                  |j                  |j	                               d      5  | j
                  j                  |t        d       d d d        |j                         S # 1 sw Y   |j                         S xY w)NF)likelyr&   )	r7   r   if_thenr3   is_valid	call_convreturn_user_excStopIterationyielded_value)r4   r5   r6   r7   itertyr  r^   s          r(   	next_implr    s    hhGFHG
&'
:C	clln5e	D))'="E 
E  
E s   "BB#znot inc                 R    d }| j                  ||||      }|j                  |      S )Nc                 .    t        j                  ||       S r%   )r1   containsri   s     r(   in_implznot_in.<locals>.in_impl  s      A&&r*   )r   r3   )r4   r5   r6   r7   r   r^   s         r(   not_inr!    s.    ' 
"
"7GS$
?C<<r*   c                     |j                   \  }|j                  }| j                  |t        |j                              }t        | ||j                  |      S r%   )r7   r\   r   r   r   r   )r4   r5   r6   r7   r   r   r^   s          r(   constsized_lenr#    sE    88DROOE


uc"((m
4CgwEEr*   c                 t    |j                   \  }t        |      rt        j                  S t        j                  S r%   )r7   r   r   true_bitr>   )r4   r5   r6   r7   r   s        r(   
sized_boolr&    s,    88DR
2w   r*   c                 l    |j                   }| j                  |      }t        | ||j                   |      S r%   )r\   get_constant_undefr   )r4   r5   r6   r7   r   r^   s         r(   lower_empty_tupler)    s0    OOE

$
$U
+CgwEEr*   c                 :    |\  }t        | ||j                  |      S r%   )r   r\   )r4   r5   r6   r7   r'   s        r(   lower_tupler+    s    DCWgsDDr*   c                     t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  f}t        | |      rd }|S y )Nc                     t        |       dkD  S r   )r   r   s    r(   	bool_implz bool_sequence.<locals>.bool_impl  s    q6A:r*   )	r   CharSeqUnicodeCharSeqDictTypeListTypeSetTypeUnicodeTypeSetr,   )r   valid_typesr.  s      r(   bool_sequencer7    s\     			K ![!	 "r*   always)inlinec                 B    t        | t        j                        s| d S y )Nc                      yNFr&   r   s    r(   <lambda>zbool_none.<locals>.<lambda>  s    r*   r,   r   rm   r   s    r(   	bool_noner?    s    !U^^$	 )2r*   )
IndexValueIndexValueType)r   register_jitablec                     |j                   }|\  }} t        j                  |      | |      }||_        ||_        |j                         S r%   )r\   r   create_struct_proxyindexry   r   )r4   r5   r6   r7   rx   rE  ry   index_values           r(   impl_index_valuerG    sN     //CLE52'--c27GDKKK  ""r*   c                 P    t        | t              rt        |t              rd }|S y y )Nc                    t        j                  | j                        r>t        j                  |j                        r| j                  |j                  k  r| S |S | S t        j                  |j                        r|S | j                  |j                  kD  r|S | j                  |j                  k(  r| j                  |j                  k  r| S |S | S r%   r   r   ry   rE  indval1indval2s     r(   min_implzindval_min.<locals>.min_impl      xx&88GMM*}}w}}4&& #N'--(.'--/==7==0"N"NNr*   r,   rA  )rL  rM  rN  s      r(   
indval_minrQ    ,    '>*'>*	, / + +r*   c                 x    t        | t        j                        r t        |t        j                        rd }|S y y )Nc                     | xr |S r%   r&   val1val2s     r(   bool_min_implz"boolval_min.<locals>.bool_min_impl  s    =D r*   r+   )rV  rW  rX  s      r(   boolval_minrY    s3    $&$&	! ' 'r*   c                 P    t        | t              rt        |t              rd }|S y y )Nc                    t        j                  | j                        r>t        j                  |j                        r| j                  |j                  k  r| S |S | S t        j                  |j                        r|S |j                  | j                  kD  r|S | j                  |j                  k(  r| j                  |j                  k  r| S |S | S r%   rJ  rK  s     r(   max_implzindval_max.<locals>.max_impl(  rO  r*   rP  )rL  rM  r\  s      r(   
indval_maxr]  $  rR  r*   c                 x    t        | t        j                        r t        |t        j                        rd }|S y y )Nc                     | xs |S r%   r&   rU  s     r(   bool_max_implz"boolval_max.<locals>.bool_max_implE  s    <4r*   r+   )rV  rW  r`  s      r(   boolval_maxra  A  s3    $&$&	  ' 'r*   c                     t        |       dk(  rt        | d   t        j                        r7t        | d   j                  t        j
                  t        j                  f      s<t        | d   t        j                        r$t        d | d   j                  D              rd }|S | D ].  }t        |t        j
                  t        j                  f      r. y  d }|S )NrE   r   c              3   p   K   | ].  }t        |t        j                  t        j                  f       0 y wr%   r,   r   Numberr-   .0r   s     r(   	<genexpr>zol_max.<locals>.<genexpr>S  %     S
"
2emm<=
   46c                      t        | d         S r   
max_varargr   s    r(   r)   zol_max.<locals>.implV      ad##r*   c                      t        |       S r%   rl  r   s    r(   r)   zol_max.<locals>.impl^      a= r*   	r   r,   r   UniTupler   re  r-   	BaseTupleallr   r)   r   s      r(   ol_maxrv  K      
1v{qtU^^,qtzzELL%--#@AqtU__-S!

SS	$Bb5<<"?@ 	!r*   c                     t        |       dk(  rt        | d   t        j                        r7t        | d   j                  t        j
                  t        j                  f      s<t        | d   t        j                        r$t        d | d   j                  D              rd }|S | D ].  }t        |t        j
                  t        j                  f      r. y  d }|S )NrE   r   c              3   p   K   | ].  }t        |t        j                  t        j                  f       0 y wr%   rd  rf  s     r(   rh  zol_min.<locals>.<genexpr>k  ri  rj  c                      t        | d         S r   
min_varargr   s    r(   r)   zol_min.<locals>.impln  rn  r*   c                      t        |       S r%   r{  r   s    r(   r)   zol_min.<locals>.implv  rp  r*   rq  ru  s      r(   ol_minr~  c  rw  r*   c                     t        |      dk(  rt        d      d } | j                  | }|t        ||      }||fS t        d|D cg c]  }| c}       c c}w )Nr   z max() argument is an empty tuplec                     t        |j                  d         }t        j                  ||d         }t	        | |||t
        j                        S r   )listr7   r   unpack_tupler   r1   gtr4   r5   r6   r7   r   s        r(   r)   zmax_vararg.<locals>.impl  A    chhqk"##GT!W5'64EEr*   Given types cannot be unified: r   r   r   r    r4   r   r)   r   r6   r   s         r(   rm  rm  {  u    
1v{<==F
  G#Eq!Dy;!<L!BR!<L;MNOO<L   	A
c                     t        |      dk(  rt        d      d } | j                  | }|t        ||      }||fS t        d|D cg c]  }| c}       c c}w )Nr   z min() argument is an empty tuplec                     t        |j                  d         }t        j                  ||d         }t	        | |||t
        j                        S r   )r  r7   r   r  r   r1   ltr  s        r(   r)   zmin_vararg.<locals>.impl  r  r*   r  r  r  s         r(   r|  r|    r  r  c                     | |kD  S r%   r&   ri   s     r(   r=  r=    s    QUr*   c                     | |k  S r%   r&   ri   s     r(   r=  r=    s    !a%r*   c                 H    t        | t        j                        rfd}|S y )Nc                 Z    t        |       }t        |      }|D ]  } ||      s|} |S r%   )iternext)iterableit
return_valr'   ops       r(   r)   zmin_max_impl.<locals>.impl  s6    hBbJc:&!$J  r*   )r,   r   IterableType)r  r  r)   s    ` r(   min_max_implr    s$    (E../	  0r*   c                 "    t        | t              S r%   )r  	less_thanr  s    r(   iterable_minr    s    ),,r*   c                 "    t        | t              S r%   )r  greater_thanr  s    r(   iterable_maxr    s    ,//r*   c                    |j                   }d }t        j                  j                  |j                        }t        j                  |t        j                  |      |      }t        |      dkD  r$| j                         | j                  |||      f}n#| j                         | j                  ||d      f}| j                  ||||      S )ae  Redirect constructor implementation to `numba_typeref_ctor(cls, *args)`,
    which should be overloaded by the type's implementation.

    For example:

        d = Dict()

    `d` will be typed as `TypeRef[DictType]()`.  Thus, it will call into this
    implementation.  We need to redirect the lowering to a function
    named ``numba_typeref_ctor``.
    c                     t        | g| S r%   )r   )clsr7   s     r(   	call_ctorz%redirect_type_ctor.<locals>.call_ctor  s    !#---r*   r   r&   )r\   r   Tuple
from_typesr7   r   r    TypeRefr   r   
make_tupler   )r4   r5   r6   r7   r  r  	ctor_argss          r(   redirect_type_ctorr    s     //C. &&sxx0I


3c 2I
>C
9~'')""7It<> '')""7Ir:< ##GYTBBr*   c                 $   d }t        |t        j                        rd}n9t        |t        j                        rd}nt        |t        j                        rd}| dj
                  | }t        |      t        | t        j                  j                  t        j                  t        j                  t        j                  t        j                  f      rt        n,t        | t        j                  j                        rt        ny dfd	}|S )N)strings )bytesrg   )	bytearrayrg   z/sum() can't sum {} [use {}''.join(seq) instead]c                 0    |} |       D ]  }||z   }	 |S r%   r&   )r  startr   r   iterators       r(   r)   zol_sum.<locals>.impl  s'    (#A'C $ 
r*   r   )r,   r   r4  Bytes	ByteArrayformatr   
containers_HomogeneousTupleListr2  r   	RangeTyper  _HeterogeneousTupler!   )r  r  errorrA   r)   r  s        @r(   ol_sumr    s     E%**+	E5;;	'	E5??	+"F?FFN# (U--??"^^U[[%//K L	Hu//CC	E " Kr*   c                     d }|S )Nc              7   <   K   t        |g| D ]	  } | |   y wr%   )r   )funcr  r7   r   s       r(   r)   zol_map.<locals>.impl  s#     X%%A(N &s   r&   )r  r  r7   r)   s       r(   ol_mapr    s     Kr*   c                 N    | t        | t        j                        rd }|S d }|S )Nc              3   (   K   |D ]	  }|s|  y wr%   r&   r  r  r   s      r(   r)   zol_filter.<locals>.impl  s     G s   c              3   4   K   |D ]  } | |      s|  y wr%   r&   r  s      r(   r)   zol_filter.<locals>.impl  s     7G s   r>  )r  r  r)   s      r(   	ol_filterr    s,    D%..9	 K		 Kr*   c                 X	   d }d }t        |       }t        |t        j                        rd| d}t	        |      t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  t        j,                  t        j.                  t        j0                  t        j2                  t        j4                  t        j6                  f}t        ||      sd| d}t	        |      |}t        |t        j                        r|j8                  d   }t        |t        j                        s|f}|D ]  }t        |t        j                        r|j8                  d   }	n)t        |t        j                         r|}	n|j8                  }	t:        t        j                  t<        t        j                  t>        t        j                  t        j                  ft@        t        j                  tB        t        jD                  tF        t        j                  i}
|	|
v rt        ||
|	         r|c S t        |t        jH                        rS|	t        j                  t        j                  t        j6                  fvrd}t	        |      tK        |      |	u r|c S |c S t        |	      }||k(  r|c S t        |t        j2                  t        j4                  f      rt        |tK        |            s|c S t        |t        j                         rAt        |t        j$                        r'|j8                  |jL                  j8                  k(  r|c S t        |t        jN                        s6|j8                  d   t        jP                  k(  sXt        ||jR                        s8t        |t        jD                        st        |t        jD                        s|c S  |S )	Nc                      y)NTr&   vartypss     r(   	true_implz ol_isinstance.<locals>.true_impl  s    r*   c                      yr<  r&   r  s     r(   
false_implz!ol_isinstance.<locals>.false_impl"  s    r*   z1isinstance cannot handle optional types. Found: ""z1isinstance() does not support variables of type "z".r   zLNumba type classes (except numba.typed.* container types) are not supported.)*r"   r,   r   rn   r   re  r  r  r1  LiteralStrKeyDictr  r2  r  rr  r5  Function	ClassTyper4  ClassInstanceTyperm   r   r-   r   r0  r   
NPDatetimeNPTimedeltar3  keyr  rangedictr  tuplers  r   r  r  instance_type	Container	undefined	__class__)r  r  r  r  var_tyrA   supported_var_tyt_typsrx   r  types_not_registered	numba_typs               r(   ol_isinstancer    s+    3F&%..)A&KS!! ekk5??(?(?U^^UYY9J9J//u{{E4H4Hu'7'79J9J' f./A&LS!!F &%..)**Q-fekk*c5>>*''!*CU__-C''C
 5;;5??5>>5#:#:;%**5?? 
 &&&"6s";<  c5==) 5>>5>>5==II3$S)) !%V 39CC%c*I"  I(8(8%:K:K'LMfd9o6$$Iu7vu'>'>?JJ)"9"9"="==  Iu7MM!$7fi&9&9:8"9eoo>$$k n r*   c                      y r%   r&   objnames     r(   _getattr_raise_attr_excr    s     	r*   c                     t        |t        j                        st        d      |j                  }d|  d| dfd}|S )N(argument 'name' must be a literal string'z' has no attribute 'c                     t              r%   )AttributeError)r  r  messages     r(   r)   z(ol__getattr_raise_attr_exc.<locals>.impl  s    W%%r*   )r,   r   StringLiteralr   rY   )r  r  lnamer)   r  s       @r(   ol__getattr_raise_attr_excr    sI    dE//0!"LMME#*5'3G&Kr*   c                   	
 t        |t        j                        st        d      |j                  
| j                  
      t        t        j                        rd d
 d d}t        |      t        t        j                        rj                  t        k(  s |      }fd}||fS | j                  t              		j                  | |fi       t        j                  |      }	fd}||fS  |      }t        t        j                        r
fd}||fS | j                  
      
fd	}||fS )
Nr  zQReturning function objects is not implemented. getattr() was requested to return z from attribute 'z' of .c                 L    |d   }| j                   j                  ||       |S N)nrtincref)cgctxr5   r6   llargstmpdefaults        r(   r)   zresolve_getattr.<locals>.impl  s'    Rj		  '37
r*   c                 @    | j                        } |||d d       S r  )r0   )r  r5   r6   r  native_implr   	raise_sigs        r(   r)   zresolve_getattr.<locals>.impl  s(    #00yA"7F3BK88r*   c                     j                   }| j                  ||d   |      }| j                  |||      }| j                  j	                  ||       |S r   )thisrM   get_bound_functionr  r  )	r  r5   r6   ll_args	cast_typecastedr^   r   r  s	          r(   r)   zresolve_getattr.<locals>.impl  sS    GG	GWQZiH..w	J		  "c2
r*   c                     | j                  
	      } || |
|d   	      }| j                  ||      }| j                  j                  ||       |S r   )rw   rM   r  r  )r  r5   r6   r  	attr_implr^   r  attrtyr   r  r  s          r(   r)   zresolve_getattr.<locals>.impl  sZ    !--c59	wWQZGGS&"=		  "f5r*   )r,   r   r  r   rY   resolve_getattrr  r   
NamedTupleinstance_class_getattr_default_typeresolve_value_typer  get_call_typenoneBoundFunction)tyctxr  r  r  rA   r6   r)   r  r   r   r  r  s    ` `   @@@@@r(   r	  r	    sf   dE//0!"LMME			sE	*B "enn%4464 8'se1& #	z 7E$4$45&&*??#tW-CB 97 ++,CDD**53+rBI**S$0C90 9' dG$b%--.  9 **36F 9r*   r  r  )prefer_literalc                     d }|S )Nc                 $    t        | |t              S r%   )r	  _getattr_defaultr  s     r(   r)   zol_getattr_2.<locals>.impl  s    sD*:;;r*   r&   r  r  r)   s      r(   ol_getattr_2r    s    <Kr*   c                     d }|S )Nc                     t        | ||      S r%   )r	  )r  r  r  s      r(   r)   zol_getattr_3.<locals>.impl  s    sD'22r*   r&   )r  r  r  r)   s       r(   ol_getattr_3r    s    3Kr*   c                    t        |t        j                        st        d      |j                  }| j                  ||      t        j                  d      }nt        j                  d      } |||      }fd}||fS )Nr  FTc                 H    t         j                  S t         j                  S r%   )r   r>   r%  )r  r5   r6   r  r   s       r(   r)   zresolve_hasattr.<locals>.impl  s    #%:gC73C3CCr*   )r,   r   r  r   rY   r	  literal)r  r  r  r  r   r6   r)   r   s          @r(   resolve_hasattrr    s{    dE//0!"LMME			sE	*B 
ze$d#
T
CD9r*   c                     d }|S )Nc                     t        | |      S r%   )r  r  s     r(   r)   zol_hasattr.<locals>.impl  s    sD))r*   r&   r  s      r(   
ol_hasattrr!    s    *Kr*   c                     d|  dfd}|S )Nz<object type:>c                 L    d}t        | |      dk(  r t        | |             S S )N__repr__T)hasattrgetattr)r  rz   missing_repr_formats     r(   r)   zol_repr_generic.<locals>.impl  s1    3%%73%'' '&r*   r&   )r  r)   r(  s     @r(   ol_repr_genericr)  
  s    )#a0' Kr*   c                     dd}|S )Nc                 \    d}t        | |      dk(  r t        | |             S t        |       S )N__str__T)r&  r'  repr)objectrz   s     r(   r)   zol_str_generic.<locals>.impl  s2    64 D((764(**<r*   r  r&   )r.  r)   s     r(   ol_str_genericr0    s      Kr*   r  r/  )collectionsr   r   	functoolsr   numpyr   r1   warningsllvmliter   numba.core.imputilsr   r   r   r	   r
   r   r   r   r   r   r   
numba.corer   r   r   r   numba.core.extendingr   r   numba.core.typeconvr   numba.core.errorsr   r   r   r   r   r   numba.core.typing.templatesr   r   r    numba.misc.specialr!   numba.core.typing.asnumbatyper"   truthr.   is_notAnyr9   r2   rC   OpaquerK   r-   rU   r<   LiteralIntegerLiteralr_   nerb   rt   DeferredTyper}   rn   r   r   getitemCPointerr   r   setitemr   r   r   roundr   r   r   r   r   r   intr   r  r   complexVarArgr   NumberClassr   Dummyr   ExternalFunctionPointerr  r  r  r  r  r  r  r  IteratorTyper  r!  r   
ConstSizedr#  boolSizedr&  r  r)  rs  r+  r7  r?  numba.core.typing.builtinsr@  rA  numba.extendingrB  r   TypeuintprG  minrQ  rY  maxr]  ra  rv  r~  rm  r|  r  r  r  r  r  r  r  sumr  mapr  filterr  r,   r  r  r  r	  r  r  r'  r  r  r  r&  r!  r-  r)  r  r0  r&   r*   r(   <module>r]     s   "      I I I I
 5 4 4 *8 84 4 - 7 
(..  x		59950 60 x||UYY		2! 3!2 x||U\\5<<8! 9! x||U]]EMM:, ;,$ x{{EMM5==9x{{E00%2F2FGF H :F x{{EMM5==9x{{E00%2F2FGF H :F D  j& '  j' ( u))*8 +8 EIIu))*ENNE../EMM5--.B / 0 +B
 E		*E.E/: 0 / +: x?E @E x		J! K!., uekk"	F #	F uekk5==1F 2FJ ueii F !F   
#  ue))*F +F wUYY/0F 1F6 u  %)),B -B* % % --.* /* D  D tUYY%  % tU''( ) tU''(	 )	 xEII. / sE$$%F &F tU[[!! "! uF F
 ueoo&E 'E 
$   
$x  ! B 6z5::uzz2z5;;

3# 4 3# 
# 8 
#  
# 8 
#  
# . 
# . P P" P P(   23/0	 	 	 
#- - 
#0 0 u}}lell59956C 7C> 
#   N 
#  
&  
*b bN	 

!" # 5 5r ##:B? (*  
'$' ( 
'   2 
'  
$
 
 
# r*   