
    xKgJ                        d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
mZmZ ddlmZmZ ddlmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZ dZerY ej>                  d      Z e jC                  ejD                         e jG                   ejH                  ejJ                                G d de      Z& G d de&      Z' G d de&      Z( G d dee      Z)y)z
Tests for SSA reconstruction
    N)njitjittypes)errorsir)FunctionPassregister_pass)DefaultPassBuilderCompilerBase)ReconstructSSA
PreserveIR)NativeLowering)overload)MemoryLeakMixinTestCaseoverride_configFznumba.core.ssa)levelc                       e Zd Zd Zy)SSABaseTestc                      |t        j                  |       } |j                  t        j                  |       }| j                  ||       y N)copydeepcopypy_funcassertEqual)selffuncargsgotexps        X/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_ssa.py
check_funczSSABaseTest.check_func   s>    DMM$'(dllDMM$/0c"    N)__name__
__module____qualname__r"    r#   r!   r   r      s    #r#   r   c                   F    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestSSAz8
    Contains tests to help isolate problems in SSA
    c                 @    t         d        }| j                  |d       y )Nc                     | dz  } | S N   r'   xs    r!   fooz.TestSSA.test_argument_name_reused.<locals>.foo+   s    FAHr#   {   r   r"   r   r0   s     r!   test_argument_name_reusedz!TestSSA.test_argument_name_reused*   s$    		 
	 	S!r#   c                 h    t         d        }| j                  |dd       | j                  |dd       y )Nc                 &    | |z  }| |k  r| }|S |}|S r   r'   )r/   yzs      r!   r0   z*TestSSA.test_if_else_redefine.<locals>.foo3   s*    AA1u H Hr#         r2   r3   s     r!   test_if_else_redefinezTestSSA.test_if_else_redefine2   s6    		 
	 	Q"Q"r#   c                 d    t         d        }| j                  |d       | j                  |d       y )Nc                 4    d}t        |       D ]  }||z  }	 |S Nr   range)ncis      r!   r0   z"TestSSA.test_sum_loop.<locals>.foo@   s#    A1XQ Hr#   r   
   r2   r3   s     r!   test_sum_loopzTestSSA.test_sum_loop?   s2    		 
	 	QR r#   c                 d    t         d        }| j                  |d       | j                  |d       y )Nc                 F    d}| }t        |       D ]  }||z  }|| z  } ||fS r>   r?   )rA   rB   drC   s       r!   r0   z(TestSSA.test_sum_loop_2vars.<locals>.fooK   s7    AA1XQQ  a4Kr#   r   rD   r2   r3   s     r!   test_sum_loop_2varszTestSSA.test_sum_loop_2varsJ   s2    		 
	 	QR r#   c                 d    t         d        }| j                  |d       | j                  |d       y )Nc                 ^    d}t        |       D ]  }t        |       D ]  }||z  }	 ||z  } |S r>   r?   )rA   rB   rC   js       r!   r0   z%TestSSA.test_sum_2d_loop.<locals>.fooX   s<    A1XqAFA "Q  Hr#   r   rD   r2   r3   s     r!   test_sum_2d_loopzTestSSA.test_sum_2d_loopW   s2    		 
	 	QR r#   c                    t         d        }|r`| j                  t        j                        5 }| j	                  |d       d d d        | j                  dt        j                               n| j	                  |d       | j                  t              5  |j                  d       d d d        y # 1 sw Y   qxY w# 1 sw Y   y xY w)Nc                 &    | r	| dkD  rd}S dz  }|S Nr   r-   r'   )rA   rB   s     r!   r0   z(TestSSA.check_undefined_var.<locals>.fooe   s&    q5A Qr#   r-   z!Detected uninitialized variable cr   )r   assertWarnsr   NumbaWarningr"   assertInstrwarningassertRaisesUnboundLocalErrorr   )r   should_warnr0   warnss       r!   check_undefined_varzTestSSA.check_undefined_vard   s    		 
	 !!&"5"56%Q' 7 MM=emm,. OOC#01KKN 21 76 21s   B1B=1B:=Cc                     t        dd      5  | j                  d       d d d        t        dd      5  | j                  d       d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)NALWAYS_WARN_UNINIT_VARr   F)rX   r-   T)r   rZ   r   s    r!   test_undefined_varzTestSSA.test_undefined_var|   sW    5q9$$$7 :5q9$$$6 :9 :999s   AAAA%c                 j    t         d        }| j                  |t        j                  ddg             y )Nc                     d}d}d}|dkD  rp|t        |       k  rb|dz  }| |   r?| |   r| |   r|dz  }| |xx   dz  cc<   n| |   r|dz  }| |xx   dz  cc<   ||z  }| |   r?||z  }|dkD  r|t        |       k  rb||fS )Nr-   r   rD      )len)actionsrA   rC   cts       r!   r0   z)TestSSA.test_phi_propagation.<locals>.foo   s    AABa%AG,Qajqz"1:GA
a
"1:GA
a
!GB aj a a%AG, q5Lr#   r-   r:   )r   r"   nparrayr3   s     r!   test_phi_propagationzTestSSA.test_phi_propagation   s1    		 
	, 	RXXq!f-.r#   c                 p    d } |ddddd      } t        |      ddddd      }| j                  ||       y )Nc                 `    | r	|}|}|}| }y |r|r|}	y }
y |rr	|r
}y |}|S r|}| S }
S }y r   r'   )arg1arg2arg3arg4arg5var1var2var3var4var5var6var7var8var9var10s                  r!   	function1z3TestSSA.test_unhandled_undefined.<locals>.function1   sr    ## #'+ &'+'+  $'+'+'+'+  $r#   r:   r9      r      )r   r   )r   ry   expectr   s       r!   test_unhandled_undefinedz TestSSA.test_unhandled_undefined   sD    *	\ 1aAq)d9oaAq!,%r#   N)r$   r%   r&   __doc__r4   r;   rE   rI   rM   rZ   r^   rg   r}   r'   r#   r!   r)   r)   %   s4    "#	!!!07/41&r#   r)   c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)TestReportedSSAIssuesc                 >    t         d        }| j                  |       y )Nc                      t        j                  d      } t        j                  d      }t        |      D ]  }d| |<   	 t        |d      D ]  } y r,   )re   emptyuint32r@   )VsrC   s      r!   r0   z1TestReportedSSAIssues.test_issue2194.<locals>.foo   sF    A		!A1X! 1a[ !r#   r2   r3   s     r!   test_issue2194z$TestReportedSSAIssues.test_issue2194   s"    		 
	 	r#   c                 ^    t         d        t         fd       }| j                  |d       y )Nc                     | S r   r'   r.   s    r!   doitz2TestReportedSSAIssues.test_issue3094.<locals>.doit   s    Hr#   c                 "    | rd}nd} |      S )NTFr'   )predr/   r   s     r!   r0   z1TestReportedSSAIssues.test_issue3094.<locals>.foo   s    7Nr#   Fr2   )r   r0   r   s     @r!   test_issue3094z$TestReportedSSAIssues.test_issue3094   s9    		 
	 
	 
	 	U#r#   c                     t         d        }t        j                  j                   |t        j                  d            |j                  t        j                  d                   y )Nc                 l    t        d      D ]%  }| j                  d      } | j                  dd      } ' | S )Nr-   rz   r9   r:   )r@   reshape)arrrC   s     r!   r0   z1TestReportedSSAIssues.test_issue3931.<locals>.foo   s5    1Xkk%(kk!Q'  Lr#   )r9   r:   )r   re   testingassert_allclosezerosr   r3   s     r!   test_issue3931z$TestReportedSSAIssues.test_issue3931   sN    		 
	 	

""3rxx'7#8#&;;rxx/?#@	Br#   c                 r    d t         fd       }t              fd       }| j                  |d       y )Nc                      y)Ndummyr'   )as    r!   overload_thisz;TestReportedSSAIssues.test_issue3976.<locals>.overload_this  s    r#   c                 (    | rd} |      }|S d}|S )N   br'   )r   r   r   s     r!   r0   z1TestReportedSSAIssues.test_issue3976.<locals>.foo  s(    !!$ H Hr#   c                     S r   r'   )r   r   s    r!   olz0TestReportedSSAIssues.test_issue3976.<locals>.ol  s	      r#   T)r   r   r"   )r   r0   r   r   s      @r!   test_issue3976z$TestReportedSSAIssues.test_issue3976   sE    	 
	 
	 
-	 	! 
!	! 	T"r#   c                 B    t         d        }| j                  |dd       y )Nc                 B    | d   }|d   }| D ]  }|} |D ]  }|} ||fS r>   r'   )ABr/   r7   rC   s        r!   r0   z1TestReportedSSAIssues.test_issue3979.<locals>.foo  s;    !A!A  a4Kr#   )r-   r:   )r   r   r2   r3   s     r!   test_issue3979z$TestReportedSSAIssues.test_issue3979  s&    		 
	 	VZ0r#   c                 t    ddt              dd       }t        fd       }| j                  |dd       y )Nc                 0    t        |t              r|d   }|S r>   )
isinstancetuple)r   r   s     r!   r   z;TestReportedSSAIssues.test_issue5219.<locals>.overload_this$  s    !U#aDHr#   c                 h    t        |t        j                  t        j                  f      dfd	}|S )Nc                     du r|d   }|S )NTr   r'   )r   r   
b_is_tuples     r!   implz>TestReportedSSAIssues.test_issue5219.<locals>.ol.<locals>.impl-  s    %!Ar#   r   )r   r   TupleUniTuple)r   r   r   r   s      @r!   r   z0TestReportedSSAIssues.test_issue5219.<locals>.ol)  s(    #AU^^'DEJ Kr#   c                      | |       y r   r'   )r   r   r   s     r!   
test_tuplez8TestReportedSSAIssues.test_issue5219.<locals>.test_tuple3  s    !Qr#   r-   )r:   r   )r   r   r"   )r   r   r   r   s      @r!   test_issue5219z$TestReportedSSAIssues.test_issue5219"  sG    	
 
-	 	 
!	 
	  
	  	
Au-r#   c                     t         d        }t        j                  d      }d|j                  _        t        j
                  j                   ||      |j                  |             y )Nc                     t        |       dk(  r| S | j                         } t        t        |             D ]  }| |xx   dz  cc<    | S )Nr   r-   )rb   r   r@   )r/   rC   s     r!   barz1TestReportedSSAIssues.test_issue5223.<locals>.bar;  sA    1v{A3q6]!	 #Hr#   r   F)r   re   onesflags	writeabler   r   r   )r   r   r   s      r!   test_issue5223z$TestReportedSSAIssues.test_issue52239  sO    		 
	 GGAJ!


""3q63;;q>:r#   c                 f    t         d        }| j                  |t        j                  d             y )Nc                 p    t        j                  d      }t        j                  d      }| d   |d<   |d   S )N)g?g333333?g333333?)r9   r9   )r   r   r   )re   rf   r   )qlinstencils      r!   r0   z1TestReportedSSAIssues.test_issue5243.<locals>.fooK  s4    ((?+Chhv&GdGGDMq6Mr#   )r:   r:   )r   r"   re   r   r3   s     r!   test_issue5243z$TestReportedSSAIssues.test_issue5243I  s-    		 
	 	RXXf-.r#   c                 &    t        d      d        }y )N(intp, intp, intp)c                 X    t        |      D ]  }|dk(  r	|| k(  r|}|| k(  r|z   } S r>   r?   r/   vrA   rC   problematics        r!   r0   zGTestReportedSSAIssues.test_issue5482_missing_variable_init.<locals>.fooW  sA    1X6Av&'Av&1Ao  r#   )r   r3   s     r!   $test_issue5482_missing_variable_initz:TestReportedSSAIssues.test_issue5482_missing_variable_initT  s     
"	#	 
$	r#   c                     ddl m}m ddlmm ddlm  G fdd|      }t        dd|	      d
        }y )Nr   r   r
   )r   IRProcessing)PreLowerStripPhisc                       e Zd Z fdZy)WTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipelinec                      j                   | j                        }|j                         |j                         |j                          |gS r   )define_objectmode_pipelinestateadd_pass_afterfinalize)r   pmr
   r   r   r   s     r!   define_pipelineszhTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipeline.define_pipelineso  sK    B'BB4::N!!.,?!!"3^Dtr#   Nr$   r%   r&   r   )r
   r   r   r   s   r!   CustomPipeliner   n  s     r#   r   r   F)loopliftpipeline_classc                 X    t        |      D ]  }||k(  r	|| k(  r|}|| k(  r|z   } S r   r?   r   s        r!   r0   zLTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.foow  sC     1X6Av&'Av&1Ao  r#   )	numba.core.compilerr   r
   numba.core.untyped_passesr   r   numba.core.typed_passesr   r   )r   r   r   r0   r
   r   r   r   s       @@@@r!   )test_issue5482_objmode_expr_null_loweringz?TestReportedSSAIssues.test_issue5482_objmode_expr_null_loweringf  sA     	IJ=	 	\ 	 
!E*
,	
,	r#   c                    t        j                  d      t        j                  d      f}t        j                  d      t        j                  d      fd} |dd|      } t        |      dd|      }  t        dd      |      dd|      }t         j                  j                  ||       t         j                  j                  ||       y )	Nr:   r-   )r-   r-   c                     t        |      dk(  r|d   }n$|d   }t        dt        |            D ]  }|z  }	 t        d|       D ]3  }t        |      D ]#  }	}|dk(  r||dz
  k(  r|}||dz
  k(  r|z   }% 5 S )Nr-   r   )rb   r@   )
mrA   datav0_tidxr   r   r   s
           r!   r0   z>TestReportedSSAIssues.test_issue5493_unneeded_phi.<locals>.foo  s    4yA~!W!Wq#d),A!GB - 1a[ 8CAax!a%< *+K!a%< *5/K $ ! r#   rD   TF)forceobjr   )re   r   r   r   r   assert_array_equal)r   r   r0   r|   res1res2r   r   s         @@r!   test_issue5493_unneeded_phiz1TestReportedSSAIssues.test_issue5493_unneeded_phi  s     
BGGAJ'GGAJGGEN	2 RT"tCyR&61sD51#6r2tD


%%fd3


%%fd3r#   c                 J   d }t        j                  ddg      } |d|       t        j                  ddg      } t        |      d|       t        j                  ddg      }t         j                  j	                  ||       t         j                  j	                  ||       y )Nc                 >    d}d}| du r|||<   |dz  }|||<   |dz  }y y )Nr   r-   Tr'   )r   stackrC   rB   s       r!   r0   zMTestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb.<locals>.foo  s<    AAt|aQaQ	 r#   r   i  Tr-   )re   rf   r   r   r   )r   r0   pythonnbr|   s        r!   *test_issue5623_equal_statements_in_same_bbz@TestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb  s    	 1c(#D&XXq#hS	$1a&!


%%ff5


%%b&1r#   c                 $   	 ddl m}m ddlmm}m} g 	 |dd       G 	 fdd|              G fd	d
|      }t        |      dd       } j                   |d      |j                  d              j                  	dg       y )Nr   r   )r   r   r	   FTmutates_CFGanalysis_onlyc                   ^     e Zd ZW j                  j                  dz   Z fdZfdZ xZS )MTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimalz.CheckSSAMinimalc                 $    t         |   |        y r   )super__init__)r   	__class__s    r!   r   zVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.__init__  s     &r#   c           	          d}|j                   j                  j                         D ](  }|t        t	        |j                  d                  z  }* j                  |       y)Nr   phiT)func_irblocksvaluesrb   list
find_exprsappend)r   r   rd   blkphi_counters       r!   run_passzVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.run_pass  sS     ==//668C#d3>>%#89::B 9""2&r#   )r$   r%   r&   r   _namer   r  __classcell__)r   r  r   s   @r!   CheckSSAMinimalr     s)     NN//2DDE' r#   r  c                       e Zd Z fdZy)LTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipelinec                      j                   | j                        }|j                         |j                          |gS r   )define_nopython_pipeliner   r   r   )r   r   r  r
   r   s     r!   r   z]TestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipeline.define_pipelines  s:    @'@@L!!/>Btr#   Nr   )r  r
   r   s   r!   r   r	    s    r#   r   r   r-   c                     t        j                  | | f      }d}||k  rGt        t        |            D ]%  }t        t        |            D ]  }||z   |||f<    ' |dz  }||k  rG|S rP   )re   r   r@   rb   )rA   max_iterr   rC   rL   ks         r!   	while_forzGTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.while_for  so    !AAAx-s1vA"3q6]!"Q!A# + ' Q	 x-
 Hr#   rD   )r-   )r   r   r
   r   r   r   r	   r   assertPreciseEqualr   r   )
r   r   r   r	   r   r  r  r
   r   r  s
   `     @@@@r!   test_issue5678_non_minimal_phiz4TestReportedSSAIssues.test_issue5678_non_minimal_phi  s     	I	
 	
 	5	=	l 	 
>		 	\ 	 
^	,	 
-	 		"y/@/@/DEqc*r#   c                      ddl m} ddlmm} d|f fd |dd       G fd	d
              G fddt
              }t        |      d        } |d       y )Nr   )
FunctionIR)AnalysisPassr	   firc                 "   | j                   j                         ^}}|j                  j                  d      }| j	                  |      }j                  |j                  d       j                  t        j                  |j                         y )NrH   r   )r   r   scopegetget_definitionr   oprS   r   	UNDEFINEDincoming_values)r  r  r   vardefnr   s        r!   checkzCTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.check  sg    

))+IS1))--$C%%c*DTWWe,MM",,(<(<=r#   FTr   c                   *    e Zd ZdZdZ fdZfdZy)FTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckz3
            Check SSA on variable `d`
            	SSA_Checkc                 (    j                  |        y r   )r   )r   r  s    r!   r   zOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.__init__  s    %%d+r#   c                 *     |j                          y)NF)r   )r   r   r   s     r!   r  zOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.run_pass  s    emm$r#   N)r$   r%   r&   r~   r  r   r  )r  r   s   r!   SSACheckr"    s      E,r#   r&  c                       e Zd ZdZ fdZy)NTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipelinez^Inject SSACheck pass into the default pipeline following the SSA
            pass
            c                     t        j                  | j                  d      }d|_        |j	                  t
               |j                          |gS )Nssa_check_custom_pipelineF)r
   r  r   
_finalizedr   r   r   )r   pipeliner&  s     r!   r   z_TestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipeline.define_pipelines  sK    -FFJJ ;= ',#''.A!!# z!r#   N)r$   r%   r&   r~   r   )r&  s   r!   SSACheckPipeliner(    s    "r#   r-  r  c                 ,    | dkD  }|r| dz   }|xr dkD  S )Nr   r   r'   )r   rB   rH   s      r!   r   zETestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.py_func!  s%    AAE;Qr#   rD   )numba.core.irr  numba.core.compiler_machineryr  r	   r   r   )r   r  r	   r-  r   r  r&  r   s   `    @@@r!   test_issue9242_use_not_dom_defz4TestReportedSSAIssues.test_issue9242_use_not_dom_def  sh    ,	

	>z 	> 
5	=	| 	 
>		"| 	" 
-	.	 
/	 	r#   N)r$   r%   r&   r   r   r   r   r   r   r   r   r   r   r   r   r  r1  r'   r#   r!   r   r      sL    $"
B#*1..; 	/$B$4L2./+b4r#   r   c                       e Zd Zd Zy)TestSROAIssuesc                 T  	
 g 
t        dd       G 
fddt                     	 G 	fddt              }t        |      d	        }t	        j
                  d
      }| j                   ||      |dz          | j                  t        
      d       | j                  
d   j                  j                  d       |j                  |j                  d      j                  d   }| j                  t        |j                        dd       |j                  j                         \  }|j!                  t"        j$                        }|D cg c]  }|j                  j                  dk(  r| }}| j                  t        |      dd       | j                  |d   |d   d       y c c}w )NFT)r   r   c                   "    e Zd ZdZd Z fdZy)ZTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignmentsclone_foobar_assignments_passc                 .    t        j                  |        y r   )r   r   r]   s    r!   r   zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.__init__<  s    %%d+r#   c                    d}|j                   j                  j                         D ]  }g }|j                  t        j
                        D ]-  }|j                  j                  dk(  s|j                  |       / |D ]<  }t        j                  |      }|j                  ||       d}j                  |       >  |S )NFfoobarT)r   r   r   
find_instsr   Assigntargetnamer  r   r   insert_after)r   r   mutatedr  to_cloneassignclonecloneds          r!   r  zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.run_pass?  s     ==//668C!H"%..";!==--9$OOF3 #< #+ $f 5((7"&e, #+ 9 r#   N)r$   r%   r&   r  r   r  )rD  s   r!   CloneFoobarAssignmentsr6  7  s     4E,r#   rE  c                       e Zd Z fdZy)RTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompilerc                     t        j                  | j                  d      }d|_        |j	                  t
               |j	                  t        t               |j                          |gS )Ncustom_pipelineF)	r
   r  r   r+  r   r   r   r   r   )r   r   rE  s     r!   r   zcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompiler.define_pipelinesQ  sW    '@@JJ 1 !&!!"8.I!!*n=tr#   Nr   )rE  s   r!   CustomCompilerrG  P  s    
r#   rJ  r  c                     | dz   }|S r,   r'   )r   r:  s     r!   udtzGTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.udt]  s    1WFMr#   rD   r-   r   r:  preserved_irzonly one blockr:   z0expected two assignment statements into 'foobar'z5expected the two assignment statements to be the same)r	   r   r   r   re   aranger  r   rb   r=  r>  	overloads
signaturesmetadatar   r   r;  r   r<  )r   rJ  rL  r   nirr  assignsstmtfoobar_assignsrE  rD  s            @@r!   +test_issue7258_multiple_assignment_post_SSAz:TestSROAIssues.test_issue7258_multiple_assignment_post_SSA1  s~    	U	=	\ 	 
>	0	\ 	 
^	,	 
-	 iimC#'2Va())..9mmCNN1-.77GSZZ!)	+

!!#..++2 ;74![[--9 7 ;>	
 	1~a0C	
;s   "F%N)r$   r%   r&   rV  r'   r#   r!   r3  r3  ,  s    
F
r#   r3  )*r~   sysr   loggingnumpyre   numbar   r   r   
numba.corer   r   r0  r   r	   r   r
   r   r   r   r   r   r   numba.extendingr   numba.tests.supportr   r   r   _DEBUG	getLogger
ssa_loggersetLevelDEBUG
addHandlerStreamHandlerstderrr   r)   r   r3  r'   r#   r!   <module>rf     s        " " ! E @ @ 2 $ J J 
	"""#34Jgmm,/'//

;<#( #h&k h&VYK Yx
K
_h K
r#   