
    sh                        S SK r S SKrS SKrS SK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JrJrJrJrJrJ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!r!J"r"  S SKJ#r#  S SK$J%s  J&r'   " S S\(5      r) " S S\(5      r* " S S\*5      r+\ RX                  " SS5      r- " S S\(5      r. " S S\R^                  5      r0 " S S5      r1 " S S\Rd                  \1\05      r/ " S S\Rd                  \1\05      r3 " S S \35      r4 " S! S"\35      r5 " S# S$\55      r6\Rn                  (       a+  \Rp                  " \)\9" S% \Rt                   5       5      5        g\Rp                  " \)\9" S& \Rv                   5       5      5        g)'    N)	ExitStack)abstractmethod)_dispatcher)utilstypeserrorstyping	serializeconfigcompilersigutils)global_compiler_lock)default_type_manager)fold_arguments)Purposetypeof)get_code_object)	NullCacheFunctionCache)entrypointsc                   4    \ rS rSrSrS rS r\S 5       rSr	g)
OmittedArg   z;
A placeholder for omitted arguments with a default value.
c                     Xl         g Nvalue)selfr   s     i/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/core/dispatcher.py__init__OmittedArg.__init__    s    
    c                 $    SU R                   < S3$ )Nzomitted arg()r   r   s    r   __repr__OmittedArg.__repr__#   s    $(JJ00r"   c                 B    [         R                  " U R                  5      $ r   )r   Omittedr   r%   s    r   _numba_type_OmittedArg._numba_type_&   s    }}TZZ((r"   r   N)
__name__
__module____qualname____firstlineno____doc__r    r&   propertyr*   __static_attributes__ r"   r   r   r      s%    1 ) )r"   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)_FunctionCompiler+   c                     Xl         X l        X0l        X@l        [        R
                  " U R                   5      U l        XPl        0 U l        g r   )	py_functargetdescrtargetoptionslocalsr   pysignaturepysigpipeline_class_failed_cache)r   r8   r9   r:   r;   r>   s         r   r    _FunctionCompiler.__init__,   s>    &*&&t||4
,  r"   c                 b    S nS nS n[        U R                  XUUU5      nU R                  U4$ )z
Given positional and named argument types, fold keyword arguments
and resolve defaults by inserting types.Omitted() instances.

A (pysig, argument types) tuple is returned.
c                     U$ r   r3   )indexparamr   s      r   normal_handler=_FunctionCompiler.fold_argument_types.<locals>.normal_handler@   s    Lr"   c                 .    [         R                  " U5      $ r   )r   r)   )rC   rD   defaults      r   default_handler>_FunctionCompiler.fold_argument_types.<locals>.default_handlerC   s    ==))r"   c                 .    [         R                  " U5      $ r   )r   StarArgTuple)rC   rD   valuess      r   stararg_handler>_FunctionCompiler.fold_argument_types.<locals>.stararg_handlerF   s    %%f--r"   )r   r=   )r   argskwsrE   rI   rN   s         r   fold_argument_types%_FunctionCompiler.fold_argument_types9   s?    		*	. djj$,--/ zz4r"   c                 >    U R                  X5      u  p4U(       a  U$ Uer   )_compile_cached)r   rP   return_typestatusretvals        r   compile_FunctionCompiler.compileO   s!    --d@MLr"   c                     [        U5      U4n SU R                  U   4$ ! [         a     Of = f U R                  X5      nSU4$ ! [        R
                   a  nXPR                  U'   SU4s S nA$ S nAff = f)NFT)tupler?   KeyError_compile_corer   TypingError)r   rP   rV   keyrX   es         r   rU   !_FunctionCompiler._compile_cachedV   s    Dk;&	$,,S111 			 '':F
 <	 !! 	&'s#!8O	s)     
--A A6A1+A61A6c                    [         R                  " 5       nU R                  R                  R	                  X0R
                  5        U R                  U5      nU R                  U0 5      n[         R                  " U R                  R                  U R                  R                  UXX0R                  U R                  S9nUR                  b  UR                  (       d  UR                  eU$ )N)rP   rV   flagsr;   r>   )r   Flagsr9   optionsparse_as_flagsr:   _customize_flags_get_implementationcompile_extratyping_contexttarget_contextr;   r>   typing_errorenable_pyobject)r   rP   rV   rd   implcress         r   r^   _FunctionCompiler._compile_coree   s       //7I7IJ%%e,''b1%%d&6&6&E&E&*&6&6&E&E&*+/,1++595H5HJ (1F1F###r"   c                 B    [         R                  " U R                  5      $ r   r
   #_get_function_globals_for_reductionr8   r%   s    r   get_globals_for_reduction+_FunctionCompiler.get_globals_for_reductionv   s    <<T\\JJr"   c                     U R                   $ r   )r8   r   rP   rQ   s      r   ri   %_FunctionCompiler._get_implementationy   s    ||r"   c                     U$ r   r3   )r   rd   s     r   rh   "_FunctionCompiler._customize_flags|   s    r"   )r?   r;   r>   r8   r=   r9   r:   N)r,   r-   r.   r/   r    rR   rY   rU   r^   ru   ri   rh   r2   r3   r"   r   r5   r5   +   s+      , "Kr"   r5   c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )_GeneratedFunctionCompiler   c                 N   > [         [        U ]  XX4U5        [        5       U l        g r   )superr}   r    setimpls)r   r8   r9   r:   r;   r>   	__class__s         r   r    #_GeneratedFunctionCompiler.__init__   s$    ($8-	IU
r"   c                 B    [         R                  " U R                  5      $ r   rs   r%   s    r   ru   4_GeneratedFunctionCompiler.get_globals_for_reduction   s     <<T\\JJr"   c           	         U R                   " U0 UD6n[        R                  " U R                   5      n[        R                  " U5      n[        UR                  5      [        UR                  5      :H  nU(       a  [        UR                  R                  5       UR                  R                  5       5       Hr  u  pxUR                  UR                  :w  dQ  UR                  UR                  :w  d7  UR                  UR                  Ld  MT  UR                  UR                  :w  d  Mp  SnMt     U(       d  [        SU< SU< SU< S35      eU R                  R                  U5        U$ )NFzgenerated implementation z& should be compatible with signature 'z', but has signature '')r8   r   r<   len
parametersziprM   namekindrH   empty	TypeErrorr   add)	r   rP   rQ   ro   r=   implsigokpyparam	implparams	            r   ri   ._GeneratedFunctionCompiler._get_implementation   s   ||T)S) !!$,,/##D)!!"c'*<*<&==&)%*:*:*A*A*C*1*<*<*C*C*E'G" LLINN2LLINN2&&ioo=&&'//9B'G #UG5 6 6 	

tr"   )r   )	r,   r-   r.   r/   r    ru   ri   r2   __classcell__r   s   @r   r}   r}      s    K
 r"   r}   _CompileStats
cache_path
cache_hitscache_missesc                   4    \ rS rSrSrS rS rS rS r\r	Sr
g)	CompilingCounter   zI
A simple counter that increment in __enter__ and decrement in __exit__.
c                     SU l         g Nr   counterr%   s    r   r    CompilingCounter.__init__   s	    r"   c                 R    U R                   S:  d   eU =R                   S-  sl         g )Nr      r   r%   s    r   	__enter__CompilingCounter.__enter__   s"    ||q   r"   c                 R    U =R                   S-  sl         U R                   S:  d   eg )Nr   r   r   )r   rP   kwargss      r   __exit__CompilingCounter.__exit__   s"    ||q   r"   c                      U R                   S:  $ r   r   r%   s    r   __bool__CompilingCounter.__bool__   s    ||ar"   r   N)r,   r-   r.   r/   r0   r    r   r   r   __nonzero__r2   r3   r"   r   r   r      s"    !  Kr"   r   c                       \ rS rSrSrSrS rS rS rS r	\
S 5       r\
S	 5       rS!S
 jrS rS rS rS r\
S 5       rS rS"S jrS"S jr  S#S jrS$S jrS"S jrS"S jrS rS rS rS rS rS rS r S r!S r"g)%_DispatcherBase   z3
Common base class for dispatcher Implementations.
r8   c                 \   [         U l        [        R                  " 5       U l        X l        [        U5      U l        U R                  U l        [        5       U l
        UR                  U l        [        UR                  5      nU R
                  R                  =(       d    Sn[        S U 5       5      n [        UR                  R                  5       5      S   n	U	R                   U	R"                  :H  n
[&        R(                  R+                  X R                  R-                  5       XR.                  XhUU
U5	        UR0                  U l        [5        5       U l        [9        [:        R<                  5      U l        [@        RB                  " X RE                  5       5        g ! [$         a    Sn
 Nf = f)Nr3   c              3   8   #    U  H  n[        U5      v   M     g 7fr   )r   ).0vals     r   	<genexpr>+_DispatcherBase.__init__.<locals>.<genexpr>   s     B>C
3>s   F)#r   _tmcollectionsOrderedDict	overloadsr8   r   	func_code__code__r   _types_active_call__defaults__r\   r   listrM   r   VAR_POSITIONAL
IndexErrorr   
Dispatcherr    get_pointer
_fold_argsr0   docr   _compiling_counterboolr   ENABLE_SYS_MONITORING_enable_sysmonweakreffinalize_make_finalizer)r   	arg_countr8   r=   can_fallbackexact_match_requiredargnamesdefault_valuesdefargslastarghas_starargs              r   r    _DispatcherBase.__init__   sK   ' %002(1"%%#00))*228bB>BB	A5++2245b9G ",,'*@*@@K''hh.B.B.D(1??(0(4(3(<	> ??"2"4"6#?#?@3356  	 K	 s   4&F F+*F+c                 .    [         R                  " 5         g)a5  
This will be called ahead of any part of compilation taking place (this
even includes being ahead of working out the types of the arguments).
This permits activities such as initialising extension entry points so
that the compiler knows about additional externally defined types etc
before it does anything.
N)r   init_allr%   s    r   _compilation_chain_init_hook,_DispatcherBase._compilation_chain_init_hook   s     	r"   c                 X    U R                  5         U R                  R                  5         g r   )_clearr   clearr%   s    r   _reset_overloads _DispatcherBase._reset_overloads   s    r"   c                 j   ^^ U R                   mU R                  m[        R                  4UU4S jjnU$ )zY
Return a finalizer function that will release references to
related compiled functions.
c                    > U " 5       (       a  g TR                  5        H  n TR                  UR                  5        M!     g ! [         a     M1  f = fr   )rM   remove_user_functionentry_pointr]   )shutting_downrp   r   	targetctxs     r   	finalizer2_DispatcherBase._make_finalizer.<locals>.finalizer  sQ      "((*2243C3CD +   s   A
AA)r   r   r   r   )r   r   r   r   s     @@r   r   _DispatcherBase._make_finalizer   s4    
 NN	NN	 %*$7$7 	 	 r"   c                 ,    [        U R                  5      $ )z1
Returns a list of compiled function signatures.
)r   r   r%   s    r   
signatures_DispatcherBase.signatures  s    
 DNN##r"   c                     U R                   R                  5        Vs/ s H"  nUR                  (       a  M  UR                  PM$     sn$ s  snf r   )r   rM   
objectmode	signaturer   rp   s     r   nopython_signatures#_DispatcherBase.nopython_signatures  sA    +/>>+@+@+B (+B4 +B ( 	( (s
   A	A	c                 `    U(       a  [        U R                  5      S:  d   eU(       + U l        g)z@Disable the compilation of new signatures at call time.
        r   N)r   r   _can_compile)r   r   s     r   disable_compile_DispatcherBase.disable_compile   s'     C01444 #Gr"   c                     [        UR                  R                  5      nU Vs/ s H  o3R                  PM     nnU R	                  XAR
                  UR                  5        XR                  U'   g s  snf r   )r\   r   rP   _code_insertr   r   r   )r   rp   rP   asigs        r   add_overload_DispatcherBase.add_overload'  sU    T^^(() $%1ww%S**DOO<#t &s   A0c                 8    U R                   R                  X5      $ r   	_compilerrR   rx   s      r   rR   #_DispatcherBase.fold_argument_types-  s    ~~11$<<r"   c                 *   U R                   R                  X5      u  p10 nU R                  (       a  U R                  [	        U5      5        U R
                  R                  nSR                  U5      n[        R                  " XTU R                  S9nXcX4$ )z
Get a typing.ConcreteTemplate for this dispatcher and the given
*args* and *kws* types.  This allows to resolve the return type.

A (template, pysig, args, kws) tuple is returned.
CallTemplate({0})r`   r   )r  rR   r   rY   r\   r8   r,   formatr	   make_concrete_templater   r   rP   rQ   r=   	func_namer   call_templates          r   get_call_template!_DispatcherBase.get_call_template0  s     nn88CLLt% LL))	")))4 55D,D,DFT..r"   c                 v    [         R                  " U5      u  p#U R                  [        U5         R                  $ )z7
Return the compiled function for the given signature.
)r   normalize_signaturer   r\   r   )r   r   rP   rV   s       r   get_overload_DispatcherBase.get_overloadJ  s0     %88=~~eDk*666r"   c                     U R                   $ )z7
Whether a specialization is currently being compiled.
)r   r%   s    r   is_compiling_DispatcherBase.is_compilingQ  s    
 &&&r"   c           	      X  ^ U(       a   eU R                  5         S n/ nT Hi  n[        U[        5      (       a1  UR                  [        R
                  " UR                  5      5        MI  UR                  U R                  U5      5        Mk     Sn U R                  [        U5      5      nU RN                  RQ                  5         U$ ! [        R                   Ga  nUR                   Vs/ s H)  n[        TU   [        R                  5      (       d  M'  UPM+     Os  snf n	nU	(       aK  Sn
SR                  U4S j[        U	5       5       5      n[        R                   " U
R#                  U5      5      e[%        T5       VVs/ s H0  u  pXR                  ;   a  [        R&                  OS " TU   5      PM2     Os  snnf snnmU R(                  " T6 n SnAGN.SnAf[        R*                   Ga  n/ n[%        T5       H  u  p[        U[        5      (       a  UR                  OUn [-        U[.        R0                  5      nUc  UR                  USU 345        M^  M`  ! [2         a'  nUR                  U[5        U5      45         SnAM  SnAff = f   U(       aH  SR                  S	 U 5       5      n[5        U5      R7                  5        S
U S3nUR9                  U5        U" US5         SnAGNGSnAf[        R:                   a  nU" US5         SnAGNmSnAf[        R<                  [        R>                  [        R@                  4 a  nU" US5         SnAGNSnAf[        RB                   a  nU" US5         SnAGNSnAf[D         ay  n[F        RH                  (       a]  [K        US5      (       aL  [        RL                  S   nUR9                  SR                  [5        U5      R7                  5       U45      5        UeSnAff = f! U RN                  RQ                  5         f = f)z
For internal use.  Compile a specialized version of the function
for the given *args* and *kws*, and return the resulting callable.
c                    [         R                  (       aL  [        R                  U   nU R	                  SR                  [        U 5      R                  5       U45      5        [         R                  (       a  U eU R                  S5      e)zW
Rewrite and raise Exception `e` with help supplied based on the
specified issue_type.

N)
r   	SHOW_HELPr   error_extraspatch_messagejoinstrrstripFULL_TRACEBACKSwith_traceback)ra   
issue_typehelp_msgs      r   error_rewrite8_DispatcherBase._compile_for_args.<locals>.error_rewriteb  s`    
 !..z:		3q6==?H*E FG%%&&t,,r"   Nz~Repeated literal typing request.
{}.
This is likely caused by an error in typing. Please see nested and suppressed exceptions., c              3   N   >#    U  H  nS R                  UTU   5      v   M     g7f)zArg #{} is {}N)r  )r   irP   s     r   r   4_DispatcherBase._compile_for_args.<locals>.<genexpr>  s-      !C*AQ "1!7!747!C!C*As   "%c                     U $ r   r3   )xs    r   <lambda>3_DispatcherBase._compile_for_args.<locals>.<lambda>  s    Ar"   z%cannot determine Numba type of value r  c              3   6   #    U  H  u  pS U SU 3v   M     g7f)z- argument z: Nr3   )r   r&  errs      r   r   r'    s"      %;Fk!Bse,;s   zA 

This error may have been caused by the following argument(s):
r	   unsupported_errorinterpreterconstant_inferencer  
reportable))r   
isinstancer   appendr   r)   r   typeof_pyvalrY   r\   r   ForceLiteralArgrequested_argsLiteralr  sortedCompilerErrorr  	enumerateliteral_compile_for_argsr_   r   r   argument
ValueErrorr  r  r  UnsupportedErrorNotDefinedErrorRedefinedErrorVerificationErrorConstantInferenceError	Exceptionr   r  hasattrr  r   r   )r   rP   rQ   r"  argtypesr   
return_valra   r&  already_lit_posminfovfailed_argsargr   tp
typeof_excargs_strmsgr!  s    `                   r   r<  !_DispatcherBase._compile_for_argsX  s   
 w 	))+	- A!Z((agg 67 1 1! 45	  
F	,eHo6JJ ##))+K %% 	7 +,*:*: F*:Q",T!Wemm"D  !*: FO FD yy !C*0*A!C C**188D>::
 !*$1 !0 --- ]]%&'+Aw0 !01D
 //6J!! 	' K#D/#-c:#>#>ciiCPW%5%56B z#**"Gu MNP " " =&&3z?';<<=	 * 99 %;F%  a&--/* +99A
"F$!X&&&& 	2!011&&(=(=((* 	, !]++,, 	3 !122 	1o..%22<@HOODIIs1v}}.I$JKG	 ##))+s   C P
G+&DDA(G7F;:GP P
25K3(IK3
J)JK3JAK3-P 3P

	LP 6P
	MP P
5	N>P P
A4PP

P P)Nc                    ^  Ub)  T R                   U   R                  nUR                  5       $ [        U 4S jT R                   5       5      $ )a  Get the LLVM intermediate representation generated by compilation.

Parameters
----------
signature : tuple of numba types, optional
    Specify a signature for which to obtain the LLVM IR. If None, the
    IR is returned for all available signatures.

Returns
-------
llvm : dict[signature, str] or str
    Either the LLVM IR string for the specified signature, or, if no
    signature was given, a dictionary mapping signatures to LLVM IR
    strings.
c              3   H   >#    U  H  oTR                  U5      4v   M     g 7fr   )inspect_llvmr   r   r   s     r   r   /_DispatcherBase.inspect_llvm.<locals>.<genexpr>  s     M_c$++C01_   ")r   libraryget_llvm_strdictr   r   r   libs   `  r   rU  _DispatcherBase.inspect_llvm  sC       ..+33C##%%MT__MMMr"   c                    ^  Ub)  T R                   U   R                  nUR                  5       $ [        U 4S jT R                   5       5      $ )a  Get the generated assembly code.

Parameters
----------
signature : tuple of numba types, optional
    Specify a signature for which to obtain the assembly code. If
    None, the assembly code is returned for all available signatures.

Returns
-------
asm : dict[signature, str] or str
    Either the assembly code for the specified signature, or, if no
    signature was given, a dictionary mapping signatures to assembly
    code.
c              3   H   >#    U  H  oTR                  U5      4v   M     g 7fr   )inspect_asmrV  s     r   r   ._DispatcherBase.inspect_asm.<locals>.<genexpr>  s     LOS$**3/0OrX  )r   rY  get_asm_strr[  r   r\  s   `  r   ra  _DispatcherBase.inspect_asm  sA       ..+33C??$$LDOOLLLr"   c                 x   U R                   nUb  X R                   U   0nU(       dz  Uc  [        R                  nUR                  5        HR  u  px[	        U R
                  R                  < SU< 3US9  [	        SUS9  [	        UR                  US9  [	        SUS9  MT     gUb  [        S5      eSSK	J
n	  U	" XUS	9$ )
a  Print/return Numba intermediate representation (IR)-annotated code.

Parameters
----------
file : file-like object, optional
    File to which to print. Defaults to sys.stdout if None. Must be
    None if ``pretty=True``.
signature : tuple of numba types, optional
    Print/return the intermediate representation for only the given
    signature. If None, the IR is printed for all available signatures.
pretty : bool, optional
    If True, an Annotate object will be returned that can render the
    IR with color highlighting in Jupyter and IPython. ``file`` must
    be None if ``pretty`` is True. Additionally, the ``pygments``
    library must be installed for ``pretty=True``.
style : str, optional
    Choose a style for rendering. Ignored if ``pretty`` is ``False``.
    This is directly consumed by ``pygments`` formatters. To see a
    list of available styles, import ``pygments`` and run
    ``list(pygments.styles.get_all_styles())``.

Returns
-------
annotated : Annotate object, optional
    Only returned if ``pretty=True``, otherwise this function is only
    used for its printing side effect. If ``pretty=True``, an Annotate
    object is returned that can render itself in Jupyter and IPython.
N )filezP--------------------------------------------------------------------------------zP================================================================================z$`file` must be None if `pretty=True`r   )Annotate)r   style)r   sysstdoutitemsprintr8   r,   type_annotationr>  &numba.core.annotations.pretty_annotaterh  )
r   rg  r   prettyri  r   r   verresrh  s
             r   inspect_types_DispatcherBase.inspect_types  s    < NN	 "NN9$=>I|zz%OO-!6!6<4HhT*c))5hT*	 .  !GHHGDUCCr"   c                 `  ^ ^ Ub  T R                   U   nUR                  nTS:X  a  UR                  R                  nO3TS:X  a  UR                  R                  nOUR                  R
                  nUR                  " U4ST R                  0UD6$ [        U U4S jT R                   5       5      $ )a#  
For inspecting the CFG of the function.

By default the CFG of the user function is shown.  The *show_wrapper*
option can be set to "python" or "cfunc" to show the python wrapper
function or the *cfunc* wrapper function, respectively.

Parameters accepted in kwargs
-----------------------------
filename : string, optional
    the name of the output file, if given this will write the output to
    filename
view : bool, optional
    whether to immediately view the optional output file
highlight : bool, set, dict, optional
    what, if anything, to highlight, options are:
    { incref : bool, # highlight NRT_incref calls
      decref : bool, # highlight NRT_decref calls
      returns : bool, # highlight exits which are normal returns
      raises : bool, # highlight exits which are from raise
      meminfo : bool, # highlight calls to NRT*meminfo
      branches : bool, # highlight true/false branches
     }
    Default is True which sets all of the above to True. Supplying a set
    of strings is also accepted, these are interpreted as key:True with
    respect to the above dictionary. e.g. {'incref', 'decref'} would
    switch on highlighting on increfs and decrefs.
interleave: bool, set, dict, optional
    what, if anything, to interleave in the LLVM IR, options are:
    { python: bool # interleave python source code with the LLVM IR
      lineinfo: bool # interleave line information markers with the LLVM
                     # IR
    }
    Default is True which sets all of the above to True. Supplying a set
    of strings is also accepted, these are interpreted as key:True with
    respect to the above dictionary. e.g. {'python',} would
    switch on interleaving of python source code in the LLVM IR.
strip_ir : bool, optional
    Default is False. If set to True all LLVM IR that is superfluous to
    that requested in kwarg `highlight` will be removed.
show_key : bool, optional
    Default is True. Create a "key" for the highlighting in the rendered
    CFG.
fontsize : int, optional
    Default is 8. Set the fontsize in the output to this value.
pythoncfuncr8   c              3   H   >#    U  H  nUTR                  UTS 94v   M     g7f))show_wrapperN)inspect_cfg)r   r   r   ry  s     r   r   ._DispatcherBase.inspect_cfg.<locals>.<genexpr>W  s-      0. $**3\*JK.rX  )
r   rY  fndescllvm_cpython_wrapper_namellvm_cfunc_wrapper_namemangled_nameget_function_cfgr8   r[  r   )r   r   ry  r   rp   r]  fnames   ` `    r   rz  _DispatcherBase.inspect_cfg  s    ^  >>),D,,Cx'==(;;00''Nt||NvNN 0#0 0 	0r"   c                    ^  Ub@  T R                   U   nUR                  nUR                  UR                  R                  5      $ [        U 4S jT R                   5       5      $ )aa  
For inspecting the CFG of the disassembly of the function.

Requires python package: r2pipe
Requires radare2 binary on $PATH.
Notebook rendering requires python package: graphviz

signature : tuple of Numba types, optional
    Print/return the disassembly CFG for only the given signatures.
    If None, the IR is printed for all available signatures.
c              3   J   >#    U  H  nUTR                  U5      4v   M     g 7fr   )inspect_disasm_cfgrV  s     r   r   5_DispatcherBase.inspect_disasm_cfg.<locals>.<genexpr>k  s(      0. $11#67.s    #)r   rY  get_disasm_cfgr|  r  r[  r   )r   r   rp   r]  s   `   r   r  "_DispatcherBase.inspect_disasm_cfgZ  s[      >>),D,,C%%dkk&>&>?? 0#0 0 	0r"   c                 V   Uc  U R                   OU/n[        R                  " 5       nU H{  nU R                  U   nUR                  nUR
                  R                  S-   [        UR
                  R                  S-   5      -   UR                  4nUR                  5       U   X7'   M}     U$ )z
Gets the annotation information for the function specified by
signature. If no signature is supplied a dictionary of signature to
annotation information is returned.
:r   )r   r   r   r   rn  func_idfilenamer  firstlinenor   annotate_raw)r   r   r   outr   rp   tar`   s           r   get_annotation_info#_DispatcherBase.get_annotation_infon  s     )2(9T__	{
%%'C>>#&D%%B::&&,s2::3I3IA3M/NN<<!C(-CH  
r"   c                     U(       a   S5       e[        U Vs/ s H  o0R                  U5      PM     sn5      nU R                  nU R                  R	                  U R
                  XAUSS9  gs  snf )(
Callback for the C _Dispatcher object.
kwargs not handledF)allow_ambiguousN)r\   r4  r   	typingctxresolve_overloadr8   )r   rP   rQ   r   sigss        r   _explain_ambiguous"_DispatcherBase._explain_ambiguous~  sj     ,,,wD9Dq''*D9: ''''d#8= 	( 	? :s   A,c                     U(       a   S5       eU Vs/ s H  o0R                  U5      PM     nnSSR                  [        [        U5      5      -  n[	        U5      es  snf )r  r  z.No matching definition for argument type(s) %sr$  )r4  r  mapr  r   )r   rP   rQ   r   rQ  s        r   _explain_matching_error'_DispatcherBase._explain_matching_error  sZ     ,,,w.23d!!!$d3?3sD>*+n 4s   Ac                     U(       a   S5       eU Vs/ s H  o0R                  U5      PM     nnSnU R                   H3  nU R                  R                  XR                  5      nU(       d  M1  SnM5     U$ s  snf )z
Callback for the C _Dispatcher object.
Search for approximately matching signatures for the given arguments,
and ensure the corresponding conversions are registered in the C++
type manager.
r  FT)r4  r   r  install_possible_conversionsrP   )r   rP   rQ   r   foundr   convs          r   _search_new_conversions'_DispatcherBase._search_new_conversions  sr     ,,,w.23d!!!$d3++C>>>>tXXNDt ,  4s   A6c                 P    [        U 5      R                  < SU R                  < S3$ )N(r$   )typer,   r8   r%   s    r   r&   _DispatcherBase.__repr__  s    :..==r"   c                      [        U[        R                  5      nUc  [        R                  nU R                  R                  U5        U$ ! [
         a    [        R                  n N9f = f)z
Resolve the Numba type of Python value *val*.
This is called from numba._dispatcher as a fallback if the native code
cannot decide the type.
)r   r   r=  r   pyobjectr>  r   r   )r   r   rN  s      r   r4  _DispatcherBase.typeof_pyval  s\    	$W--.B z^^##B'	  	 B	 s   A A)(A)c                 |    UR                   nUb-  UR                  S0 5      nX5;  a  XU'   g SU S3n[        U5      eg )Ntimersr   z metadata is already defined.)metadata
setdefaultAssertionError)r   durationrp   	lock_namemdr  rQ  s          r   _callback_add_timer#_DispatcherBase._callback_add_timer  sM    ]]>]]8R0F&$,y!)$AB$S)) r"   c                 "    U R                  XSS9$ )Ncompiler_lockr  r  r   r  rp   s      r   _callback_add_compiler_timer,_DispatcherBase._callback_add_compiler_timer  s!    ''2A ( C 	Cr"   c                 "    U R                  XSS9$ )N	llvm_lockr  r  r  s      r   _callback_add_llvm_timer(_DispatcherBase._callback_add_llvm_timer  s    ''2= ( ? 	?r"   )r   r   r   r   r   r   r   r   r   r   r8   )Tr   )NNFrH   )NN)#r,   r-   r.   r/   r0   	__numba__r    r   r   r   r1   r   r   r   r   rR   r  r  r  r<  rU  ra  rs  rz  r  r  r  r  r  r&   r4  r  r  r  r2   r3   r"   r   r   r      s     I$7L2 $ $ ( ($$=/47 ' 'fPN,M, 26*3/Db;0z0( ? > 
*C?r"   r   c                       \ rS rSrSr\R                  " 5       r\R                  " \
R                  S9r\S 5       rS rSrg)
_MemoMixini  N)maxlenc                     U R                   nUc/  [        [        R                  " 5       5      nU R	                  U5        U$ )z
An instance-specific UUID, to avoid multiple deserializations of
a given instance.

Note: this is lazily-generated, for performance reasons.
)_MemoMixin__uuidr  uuiduuid4	_set_uuidr   us     r   _uuid_MemoMixin._uuid  s3     KK9DJJL!ANN1r"   c                     U R                   b   eXl         X R                  U'   U R                  R                  U 5        g r   )r  _memo_recentr3  r  s     r   r  _MemoMixin._set_uuid  s4    {{"""

1D!r"   )__uuid)r,   r-   r.   r/   r  r   WeakValueDictionaryr  r   dequer   FUNCTION_CACHE_SIZEr  r1   r  r  r2   r3   r"   r   r  r    sD    F'')E v'A'ABG "r"   r  c                       \ rS rSrSrSrSr0 0 \R                  4S jr	SS jr
\S 5       rS rSS
 jrS r\S 5       rS rS rS r\S 5       rSS jrSS jrS rSrg	)r   i  z
Implementation of user-facing dispatcher objects (i.e. created using
the @jit decorator).
This is an abstract base class. Subclasses should define the targetdescr
class attribute.
Tr8   c           	         U R                   R                  U l        U R                   R                  U l        [
        R                  " U5      n[        UR                  5      nUR                  SS5      (       + n[        R                  XXUSS9  [        R                  " X5        X0l        X l        [!        5       U l        [$        nU" XR                   X2U5      U l        [(        R*                  " 5       U l        [(        R*                  " 5       U l        [0        R2                  " U 5      U l        U R                  R7                  X R4                  5        g)ac  
Parameters
----------
py_func: function object to be compiled
locals: dict, optional
    Mapping of local variable names to Numba types.  Used to override
    the types deduced by the type inference engine.
targetoptions: dict, optional
    Target-specific config options.
pipeline_class: type numba.compiler.CompilerBase
    The compiler pipeline type.
nopythonF)r   N)r9   rk   r  rl   r   r   r<   r   r   getr   r    	functoolsupdate_wrapperr:   r;   r   _cacher5   r  r   Counter_cache_hits_cache_missesr   r   _typeinsert_global)	r   r8   r;   r:   r>   r=   r   r   compiler_classs	            r   r    Dispatcher.__init__  s    ))88))88!!'*(()	(,,Z??  ',6; 	! 	= 	  /*k*'1A1A(5~O&..0(002%%d+
$$T::6r"   c           
         [        U S[        U 5      R                   SU R                  R                   SU R                  R
                   S35        U R                  R                  5        H  nUR                  US-   S9  M     [        U S[        U 5      R                   SU R                  R                   S35        g )NzDUMP [z, type code=]z  )tabz	END DUMP )	rm  r  r,   r8   r  r   r   rM   dump)r   r  rp   s      r   r  Dispatcher.dump  s    U4:../q1F1F0GTZZ--.a1 	2NN))+DII#*I% ,YtDz2231T\\5J5J4K1MNr"   c                 .    [         R                  " U 5      $ r   r   r   r%   s    r   r*   Dispatcher._numba_type_"      %%r"   c                 8    [        U R                  5      U l        g r   )r   r8   r  r%   s    r   enable_cachingDispatcher.enable_caching&  s    #DLL1r"   Nc                 8    Uc  U $ [         R                  " X5      $ )z9Allow a JIT function to be bound as a method to an object)pytypes
MethodType)r   objobjtypes      r   __get__Dispatcher.__get__)  s    ;K%%d00r"   c           	      ,   U R                   (       a  / nO3U R                  R                  5        Vs/ s H  o"R                  PM     nn[	        [        U R                  5      U R                  U R                  U R                  U R                   US9$ s  snf )
Reduce the instance for pickling.  This will serialize
the original function as well the compilation options and
compiled signatures, but not the compiled code itself.

NOTE: part of ReduceMixin protocol
)r  r8   r;   r:   can_compiler  )
r   r   rM   r   r[  r  r  r8   r;   r:   )r   r  crs      r   _reduce_statesDispatcher._reduce_states0  sx     D+/>>+@+@+BC+BRLL+BDCTZZLL;;,,))
 	
 Ds   Bc                      U R                   U   $ ! [         a     Of = fU " X#U5      nUR                  U5        U H  nUR                  U5        M     XWl        U$ )_
Rebuild an Dispatcher instance after it was __reduce__'d.

NOTE: part of ReduceMixin protocol
)r  r]   r  rY   r   )	clsr  r8   r;   r:   r  r  r   r   s	            r   _rebuildDispatcher._rebuildF  s`    	99T?" 		7M2tCLL '    
c                   ^ ^ [        5        nS mUU 4S jnUU 4S jnUR                  [        R                  " SU5      5        UR                  [        R                  " SU5      5        UR                  [        5        T R
                  (       d  [        S5      eT R                     [        R                  " U5      u  pVT R                  R                  [        U5      5      nUb  UR                  sS S S 5        sS S S 5        $ T R                  R                  UT R                   5      mTb  T R"                  U==   S-  ss'   TR$                  (       d<  T R                   R'                  TR                  TR(                  TR*                  /5        T R-                  T5        TR                  sS S S 5        sS S S 5        $ T R.                  U==   S-  ss'   [1        T UUS9n[        R2                  " SUS	9    T R4                  R7                  XV5      mT R-                  T5        S S S 5        T R                  R?                  UT5        TR                  sS S S 5        sS S S 5        $ ! [8        R:                   a  n	U 4S
 jn
U	R=                  U
5      eS n	A	ff = f! , (       d  f       N{= f! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)Nc                 2   > Tb  TR                  U T5        g g r   r  durrp   r   s    r   cb_compiler'Dispatcher.compile.<locals>.cb_compiler^      #55c4@ $r"   c                 2   > Tb  TR                  U T5        g g r   r  r  s    r   cb_llvm#Dispatcher.compile.<locals>.cb_llvmb      #11#t< $r"   numba:compiler_locknumba:llvm_lockzcompilation disabledr   
dispatcherrP   rV   numba:compiledatac                 B   > TR                   R                  U U5      S   $ Nr   r  )rP   rQ   r   s     r   folded"Dispatcher.compile.<locals>.folded  s*    #'>>#E#EdFI$KKL$N Nr"   ) r   enter_contextevinstall_timerr   r   RuntimeErrorr   r   r  r   r  r\   r   r  load_overloadr   r  r   insert_user_functionr|  rY  r   r  r[  trigger_eventr  rY   r   r5  bind_fold_argumentssave_overload)r   r   scoper
  r  rP   rV   existing
ev_detailsra   r  rp   s   `          @r   rY   Dispatcher.compileZ  sO   [EDA=  0 01F1<!> ? 0 01BG LM 45$$"#9::(($,$@$@$E!>>--eDk:'#// )(' [4 {{00dnnE#$$S)Q.)??;;D<L<L<@KK=A\\NL %%d+++! )(' [J ""3'1,'!# +

 %%oJG<#~~55dH %%d+ H ))#t4''E )(' [\ "11 <N  33F;;	< HG1 )((' [[sz   BK'AJ,2	KB)J,.	K7J,8J:I(J&/J,	K(J	<J	J	J
J)%J,,
J:	6K
Kc                     [        UR                  5      nX R                  ;  a>  U R                  (       a  U R	                  U5        OU S3n[
        R                  " U5      eU R                  U   $ )zCompile (if needed) and return the compilation result with the
given signature.

Returns ``CompileResult``.
Raises ``NumbaError`` if the signature is incompatible.
z' not available and compilation disabled)r\   rP   r   r   rY   r   r_   )r   r   atypesrQ  s       r   get_compile_resultDispatcher.get_compile_result  s]     sxx'  V$DE((--~~f%%r"   c                 *   [        U R                  5      nU R                  nU R                  5       " 5         U R	                  5         U R
                  R                  5         SU l         U H  nU R                  U5        M     X l        g! X l        f = f)z"
Recompile all signatures afresh.
TN)r   r   r   r   r   r  flushrY   )r   r  old_can_compiler   s       r   	recompileDispatcher.recompile  s|     DNN#++ 	  	0S!  !0s   )B
 
Bc                 h    [        U R                  R                  U R                  U R                  S9$ )Nr   )r   r  r   r  r  r%   s    r   statsDispatcher.stats  s.    {{--''++
 	
r"   c                 z   ^ ^ UU 4S jnUb	  U" U5        gT R                    Vs/ s H
  oC" U5      PM       ngs  snf )a
  
Print parallel diagnostic information for the given signature. If no
signature is present it is printed for all known signatures. level is
used to adjust the verbosity, level=1 (default) is minimal verbosity,
and 2, 3, and 4 provide increasing levels of verbosity.
c                    > TR                   U    nUR                  R                  SS 5      nUc  Sn[        U5      eUR	                  T5        g )Nparfor_diagnosticsz8No parfors diagnostic available, is 'parallel=True' set?)r   r  r  r>  r  )r   olpfdiagrQ  levelr   s       r   r  -Dispatcher.parallel_diagnostics.<locals>.dump  sF    $B[[__%94@F~P o%KKr"   N)r   )r   r   r;  r  r   s   ` `  r   parallel_diagnosticsDispatcher.parallel_diagnostics  s4    	  O"&//2/3T#Y/22s   8c                 z   ^  Ub  T R                   U   R                  $ [        U 4S jT R                   5       5      $ )z8
Obtain the compilation metadata for a given signature.
c              3   X   >#    U  H  oTR                   U   R                  4v   M!     g 7fr   )r   r  rV  s     r   r   *Dispatcher.get_metadata.<locals>.<genexpr>  s&      >MsT^^C(112os   '*)r   r  r[  r   )r   r   s   ` r   get_metadataDispatcher.get_metadata  s>      >>),555 >Boo  r"   c                     U R                   (       d`  [        U R                  5      S:X  aF  [        U R                  R	                  5       5      S   n[
        R                  " UR                  5      $ gg)zReturn unique function type of dispatcher when possible, otherwise
return None.

A Dispatcher instance has unique function type when it
contains exactly one compilation result and its compilation
has been disabled (via its disable_compile method).
r   r   N)r   r   r   r\   rM   r   FunctionTyper   r   s     r   get_function_typeDispatcher.get_function_type  sV       S%8A%=..01!4D%%dnn55 &> r"   )
r  r  r  r   r  r  r;   r   r:   r  ) r   r  )r,   r-   r.   r/   r0   r   r  r   Compilerr    r  r1   r*   r  r  r  classmethodr  rY   r,  r1  r4  r=  rB  rF  r2   r3   r"   r   r   r     s     JI') ( 1 1$7LO & &21
,  &6(p&"0$ 
 
3&	
6r"   r   c                   d    \ rS rSrSrSrSrS rS rS r	\
S 5       rS rS	 r\S
 5       rS rSrg)
LiftedCodei  z
Implementation of the hidden dispatcher objects used for lifted code
(a lifted loop is really compiled as a separate function).
Fc           	         Xl         S U l        X l        X0l        X@l        XPl        [        R                  X R                   R                  U R                   R                  R                  U R                   R                  R                  SSS9  g )NTF)r   r   )func_irlifted_fromr  r   rd   r;   r   r    r   r  funcr=   )r   rN  r  r   rd   r;   s         r   r    LiftedCode.__init__  sn    ""
  ||'='=!%!5!5!:!:!%!5!5!;!;.26;	 	! 	=r"   c                     [        U R                  U R                  U R                  U R                  U R                  5       S9$ )r  )r  rN  rd   r;   extras)r[  r  rN  rd   r;   _reduce_extrasr%   s    r   r  LiftedCode._reduce_states  s6     T\\;;t':':'<
 	
r"   c                     0 $ )z2
NOTE: sub-class can override to add extra states
r3   r%   s    r   rT  LiftedCode._reduce_extras  s	     	r"   c                      U R                   U   $ ! [         a     Of = fSSKJn  UR                  R
                  nUR                  R                  nU " X'XU40 UD6n	U	R                  U5        U	$ )r   r   )registry)r  r]   
numba.corerY  
cpu_targetrk   rl   r  )
r  r  rN  rd   r;   rS  rY  r  r   r   s
             r   r  LiftedCode._rebuild  sr    	99T?" 		 	(''66	''66	7yJ6Jtr  c                 B    U R                   R                  R                  $ )z5Return the starting line number of the loop.
        )rN  locliner%   s    r   get_source_locationLiftedCode.get_source_location*  s     ||$$$r"   c                     g)zPre-compile actions
        Nr3   r   rP   rV   rd   s       r   _pre_compileLiftedCode._pre_compile/  s     	r"   c                     g)zwLifted code should implement a compilation method that will return
a CompileResult.entry_point for the given signature.Nr3   )r   r   s     r   rY   LiftedCode.compile4  s     	r"   c                     U $ r   r3   r%   s    r   "_get_dispatcher_for_current_target-LiftedCode._get_dispatcher_for_current_target:  s	     r"   )rd   rN  rO  r;   r   r  N)r,   r-   r.   r/   r0   r   	can_cacher    r  rT  rJ  r  r`  rd  r   rY   ri  r2   r3   r"   r   rL  rL    sY     JI=
  .%

  
r"   rL  c                        \ rS rSrS rS rSrg)
LiftedLoopi@  c                 4    UR                   (       a   S5       eg )NzEnable looplift flags is on)enable_loopliftrc  s       r   rd  LiftedLoop._pre_compileA  s    ((G*GG((r"   c                 x  ^ ^ [        5        nS mUU 4S jnUU 4S jnUR                  [        R                  " SU5      5        UR                  [        R                  " SU5      5        UR                  [        5        T R
                     T R                  n[        R                  " U5      u  pgT R                  R                  [        U5      5      nUb  UR                  sS S S 5        sS S S 5        $ T R                  XgU5        UR                  5       n	SU	l        UR                  5       n
SU
l        T R                   R                  5       nT R                   R                  5       n[#        T UUS9n[        R$                  " SUS	9    [&        R(                  " T R*                  T R,                  UUUU	T R.                  S
T R0                  SS9
mTR6                  b  TR6                  eT R9                  T5        S S S 5        TR                  sS S S 5        sS S S 5        $ ! [2        R4                   aH    [&        R(                  " T R*                  T R,                  UUUU
T R.                  S
T R0                  SS9
m Nf = f! , (       d  f       N= f! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)Nc                 2   > Tb  TR                  U T5        g g r   r  r  s    r   r
  'LiftedLoop.compile.<locals>.cb_compilerH  r  r"   c                 2   > Tb  TR                  U T5        g g r   r  r  s    r   r  #LiftedLoop.compile.<locals>.cb_llvmL  r  r"   r  r  FTr  r  r  r3   
r  r   rN  rP   rV   rd   r;   liftedrO  is_lifted_loop)r   r  r  r  r   r   rd   r   r  r   r  r\   r   rd  copyforce_pyobjectrN  r[  r#  r   
compile_irr  r   r;   rO  r   r_   rm   r   )r   r   r&  r
  r  rd   rP   rV   r'  npm_loop_flagspyobject_loop_flagscloned_func_ir_npmcloned_func_ir_fbkr(  rp   s   `             @r   rY   LiftedLoop.compileD  sY   [EDA=  0 01F1<!> ? 0 01BG LM 45 ((

$,$@$@$E!  >>--eDk:'#// )(# [8 !!$U; "'05-&+jjl#59#2 &*\\%6%6%8"%)\\%6%6%8"!# +

 %%oJGI'22T^^=A^^;M8<?J9G:>++:<?C?O?OBF	 I, ))5"///%%d+9 H: ''u )(# [x "-- 
I'22T^^=A^^;M8<?J9L:>++:<?C?O?OBF	 I
I HG; )((# [[sp   A>J+AJ"	J+5BJ	I?AH *I?:J	J+ AI<	9I?;I<	<I??
J	J
J	J++
J9r3   N)r,   r-   r.   r/   rd  rY   r2   r3   r"   r   rm  rm  @  s    HL(r"   rm  c                   :    \ rS rSrSrS r\S 5       rS rS r	Sr
g)	
LiftedWithi  Tc                 (    [        U R                  S9$ )Noutput_types)r[  r  r%   s    r   rT  LiftedWith._reduce_extras  s    !2!233r"   c                 .    [         R                  " U 5      $ r   r  r%   s    r   r*   LiftedWith._numba_type_  r  r"   c                     U R                   (       a  U R                  [        U5      5        SnU R                  R                  nSR                  U5      n[        R                  " XTU R                  S9nXcX4$ z
Get a typing.ConcreteTemplate for this dispatcher and the given
*args* and *kws* types.  This enables the resolving of the return type.

A (template, pysig, args, kws) tuple is returned.
Nr  r  )	r   rY   r\   r8   r,   r  r	   r  r   r	  s          r   r  LiftedWith.get_call_template  sj     LLt%LL))	")))4 55D,D,DFT..r"   c                 J  ^ ^ [        5        nS mUU 4S jnUU 4S jnUR                  [        R                  " SU5      5        UR                  [        R                  " SU5      5        UR                  [        5        T R
                     T R                  n[        R                  " U5      u  pgT R                  R                  [        U5      5      nUb  UR                  sS S S 5        sS S S 5        $ T R                  XgU5        T R                  R                  5       n	[!        T UUS9n
[        R"                  " SU
S9   [$        R&                  " T R(                  T R*                  U	UUUT R,                  ST R.                  S	S
9
mTR0                  b  UR2                  (       d  TR0                  eT R5                  T5        S S S 5        TR                  sS S S 5        sS S S 5        $ ! , (       d  f       N,= f! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)Nc                 2   > Tb  TR                  U T5        g g r   r  r  s    r   r
  'LiftedWith.compile.<locals>.cb_compiler  r  r"   c                 2   > Tb  TR                  U T5        g g r   r  r  s    r   r  #LiftedWith.compile.<locals>.cb_llvm  r  r"   r  r  r  r  r  r3   Trv  )r   r  r  r  r   r   rd   r   r  r   r  r\   r   rd  rN  ry  r[  r#  r   r{  r  r   r;   rO  rm   rn   r   )r   r   r&  r
  r  rd   rP   rV   r'  cloned_func_irr(  rp   s   `          @r   rY   LiftedWith.compile  s    [EDA=  0 01F1<!> ? 0 01BG LM 45 ((

$,$@$@$E!  >>--eDk:'#// )(# [8 !!$U; "&!2!2!4!# +

 %%oJG#..9=7E48;F5:4;;68;?;K;K>BED ))5 % 5 5"///%%d+ H  ''K )(# [L HG+ )((# [[sK   A>HAG9"	H5AG9BG(G9	H(
G62G99
H	H
H"r3   N)r,   r-   r.   r/   rk  rT  r1   r*   r  rY   r2   r3   r"   r   r  r    s*    I4 & &/*9(r"   r  c                   Z   ^  \ rS rSrU 4S jr\S 5       rS rS r\	U 4S j5       r
SrU =r$ )ObjModeLiftedWithi  c                    > UR                  SS 5      U l        [        [        U ]  " U0 UD6  U R
                  R                  (       d  [        S5      eU R                  c  [        S5      eSU R
                  l	        g )Nr  z expecting `flags.force_pyobject`z`output_types` must be providedT)
popr  r   r  r    rd   rz  r>  r   no_rewrites)r   rP   r   r   s      r   r    ObjModeLiftedWith.__init__  sg    "JJ~t<j$($9&9zz((?@@$=>>!%

r"   c                 .    [         R                  " U 5      $ r   )r   ObjModeDispatcherr%   s    r   r*   ObjModeLiftedWith._numba_type_  s    &&t,,r"   c                    U(       a   eU R                  U5        [        R                  /[        U5      -  nU R                  (       a  U R                  [        U5      5        [        R                  " U R                  /UQ76 /nSnU R                  R                  nSR                  U5      n[        R                  " XeUS9nXtX4$ r  )_legalize_arg_typesr   ffi_forced_objectr   r   rY   r\   r	   r   r  r8   r,   r  r  )r   rP   rQ   r   r=   r
  r   r  s           r   r  #ObjModeLiftedWith.get_call_template  s     w  &''(3t94LLt%&&t'8'8@4@A
LL))	")))455J8 T..r"   c                 B   [        USS9 H  u  p#[        U[        R                  5      (       a'  Sn[        R
                  " UR                  U5      5      e[        U[        R                  5      (       d  Ml  Sn[        R
                  " UR                  U5      5      e   g )Nr   )startz>Does not support list type inputs into with-context for arg {}zBDoes not support function type inputs into with-context for arg {})r:  r2  r   Listr   r_   r  r   )r   rP   r&  r   rQ  s        r   r  %ObjModeLiftedWith._legalize_arg_types  s    d!,DA!UZZ((.  ((A77Au//00.  ((A77 -r"   c                    > [         R                  " U5      u  p#[        R                  4[	        U5      -  n[
        TU ]  U5      $ r   )r   r  r   r  r   r   rY   )r   r   rP   _r   s       r   rY   ObjModeLiftedWith.compile%  s;    ..s3&&(3t94ws##r"   r  )r,   r-   r.   r/   r    r1   r*   r  r  r   rY   r2   r   r   s   @r   r  r    s:    & - -/08 $ $r"   r  c              #   P   #    U  H  n[        U5      UR                  4v   M     g 7fr   )r  r   r   ts     r   r   r   0  s     <(;1c!fagg(;s   $&c              #   t   #    U  H.  n[        U5      R                  S 5      S   UR                  4v   M0     g7f)r  r   N)r  splitr   r  s     r   r   r   5  s-     N7M!c!fll3#QWW-7Ms   68)<r   r  rj  r   r  r  r   
contextlibr   abcr   numbar   rZ  r   r   r	   r
   r   r   r   numba.core.compiler_lockr   numba.core.typeconv.rulesr   numba.core.typing.templatesr   numba.core.typing.typeofr   r   numba.core.bytecoder   numba.core.cachingr   r   r   numba.core.eventcoreeventr  objectr   r5   r}   
namedtupler   r   r   r   r  ReduceMixinrL  rm  r  r  USE_LEGACY_TYPE_SYSTEMtypeof_initr[  number_domainnp_number_domainr3   r"   r   <module>r     sp     
          : : 6 4 / 7 "  ) ) R Rj#!2 #L &&ACv ,J?k,, J?Z" ":{6&&
O {6|U&&
O UpP( P(fY( Y(x:$
 :$z 
  <(;(;<<>
 Nu7M7MNNPr"   