
    wiE]                        d dl Z d dlZd dlmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZmZ d dlmZmZmZ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  G d de          Z G d	 d
e          Z  G d de          Z! G d de          Z" G d dee          Z# G d de          Z$e G d de                      Z%e&dk    r ej'                     dS dS )    N)product)njittypedobjmodeprange)ir_utilsir)CompilerErrorNumbaPerformanceWarningTypingErrorUnsupportedBytecodeError)
TestCaseunittestcaptured_stdoutMemoryLeakMixinskip_parfors_unsupportedskip_unless_scipyexpected_failure_py311expected_failure_py312expected_failure_py313expected_failure_py314c                       e Zd ZdS )MyErrorN)__name__
__module____qualname__     k/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/numba/tests/test_try_except.pyr   r      s        Dr   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ed             Zd Zd Zd ZdS )TestTryBareExceptzhTest the following pattern:

        try:
            <body>
        except:
            <handling>
    c                     t           d             t           fd            }|                      |d          d           |                      |d          d           d S )Nc                     | rt           d S Nr   xs    r   innerz5TestTryBareExcept.test_try_inner_raise.<locals>.inner!   s      r   c                 0    	  |            dS #  Y dS xY w)N
not raisedcaughtr   )r'   r(   s    r   udtz3TestTryBareExcept.test_try_inner_raise.<locals>.udt&   s*     a#| xxs    Fr*   Tr+   r   assertEqual)selfr,   r(   s     @r   test_try_inner_raisez&TestTryBareExcept.test_try_inner_raise    s    		 	 
	 
	  	  	  	  
	  	U\222TH-----r   c                    t           d             t           fd            }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     t	          |j                  d           |                      |d          d           |                      |d          d           d S )	Nc                 Z    | dk    rt          d          | dk    rt          d          d S )N   one   twor%   r&   s    r   r(   z5TestTryBareExcept.test_try_state_reset.<locals>.inner2   s3    Avvenn$aenn$ r   c                 Z    	  |            d}n	#  d}Y nxY w| dk    r d           |S )Nr*   r+   r   r5   r   )r'   resr(   s     r   r,   z3TestTryBareExcept.test_try_state_reset.<locals>.udt9   sI    a"AvvaJs    r   r6   r3   r+   r*   )r   assertRaisesr   r.   str	exception)r/   r,   raisesr(   s      @r   test_try_state_resetz&TestTryBareExcept.test_try_state_reset1   s   		% 	% 
	% 
	 	 	 	 
	 w'' 	6CFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..666Q***R,/////s   AAAc                 &    t           d             }|S )Nc                     | dk    rt          d           t          d          | dk    rt          d           t          d          | dk    rt          d           t          d	          t          d
           d S )Nr3   call_oner4   r5   call_twor6      
call_threethree
call_otherprintr   r&   s    r   r(   z-TestTryBareExcept._multi_inner.<locals>.innerK   s    Avvj!!!enn$aj!!!enn$al###g&&&l#####r   )r   )r/   r(   s     r   _multi_innerzTestTryBareExcept._multi_innerJ   s"    		$ 	$ 
	$ r   c                    |                                  t          fd            }|                     t                    5 }t	                      5 } |ddd           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |                                                                g d           |                     t          |j	                  d           t	                      5 } |ddd           d d d            n# 1 swxY w Y   |                     |                                                                g d           t	                      5 } |ddd           d d d            n# 1 swxY w Y   |                     |                                                                g d	           d S )
Nc                 "   	 	 t          d            |            t          d           d S #  t          d            |           t          d           Y d S xY w#  t          d            |           t          d           Y d S xY w)NABCDEF)rH   )r'   yzr(   s      r   r,   z.TestTryBareExcept.test_nested_try.<locals>.udt^   s    #JJJE!HHH#JJJJJ#JJJE!HHH#JJJJJJc


ac





s   )/ +AA  A   +Br3   r5   rC   )rL   rA   rN   rB   rP   rD   rE   r   )rL   rA   rN   rF   rO   )rL   rA   rN   rB   rP   rF   rQ   )
rI   r   r:   r   r   r.   getvaluesplitr;   r<   )r/   r,   r=   stdoutr(   s       @r   test_nested_tryz!TestTryBareExcept.test_nested_try[   s   !!##		 	 	 	 
	  w'' 	6 "" fAq!              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%AAA	
 	
 	
 	V-..888  	&C1aLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%555	
 	
 	
  	&C1aLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%FFF	
 	
 	
 	
 	
sZ   BA+B+A/	/B2A/	3BB	B?DD D.FFFc                 l   |                                  t          fd            }t                      5 } |dd          }d d d            n# 1 swxY w Y   |                     |                                                                g d           |                     |d           t                      5 } |dd          }d d d            n# 1 swxY w Y   |                     |                                                                g d           |                     |d           t                      5 } |dd          }d d d            n# 1 swxY w Y   |                     |                                                                g d           |                     |d	           d S )
Nc                     	 t          d           t          |          D ]"}t          |           || k    r |           #n#  t          d           Y nxY w|S )NrL   rM   )rH   range)r'   nir(   s      r   r,   z/TestTryBareExcept.test_loop_in_try.<locals>.udt   sl    c


q ! !A!HHHAvva!c




Hs   AA ArC      )rL   0123rD   rM   r3   )rL   r^   r_   rA   rM   r   )rL   r^   rF   r_   r`   r5   )rI   r   r   r.   rT   rU   )r/   r,   rV   r8   r(   s       @r   test_loop_in_tryz"TestTryBareExcept.test_loop_in_try   s   !!##			 		 		 		 
		  	&#a))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%888	
 	
 	
 	a     	&#a))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%,,,	
 	
 	
 	a     	&#a))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%...	
 	
 	
 	a     s5   AAA:CCC>EEEc                 2   t           d             }t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                                                ddg           |                     |d           t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                                                ddg           |                     |d           d S )	Nc                     	 t          d           | rt          d          t          d           n#  t          d           Y dS xY wdS )NrL   my_errorrM   rN   A  {   rG   r&   s    r   r,   z0TestTryBareExcept.test_raise_in_try.<locals>.udt   sU    c


 .!*---c



c


ss3s	   /2 ATrL   rN   rf   FrM   rg   r   r   r.   rT   rU   r/   r,   rV   r8   s       r   test_raise_in_tryz#TestTryBareExcept.test_raise_in_try   s   			 		 
		  	&#d))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%#J	
 	
 	
 	c"""  	&#e**C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%#J	
 	
 	
 	c"""""   7;;"B::B>B>c                 .   t           fd            t                      5 } d          }d d d            n# 1 swxY w Y   |                     |           |                     |                                                                dg           d S )Nc                     | dk    r'	  | dz
             n#  t          d           Y dS xY w| dk    rt          d          d S )Nr   r3   CAUGHT   r<   )rH   
ValueError)r'   foos    r   rq   z-TestTryBareExcept.test_recursion.<locals>.foo   s]    1uuCAJJJJ(OOO22Avv --- vs    ,
   rn   )r   r   assertIsNoner.   rT   rU   )r/   rV   r8   rq   s      @r   test_recursionz TestTryBareExcept.test_recursion   s    		. 	. 	. 	. 
	.  	&#b''C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#**0022XKAAAAAs   :>>c                 N   t           d             t           fd            }t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |d           |                     |                                                                g            d S )Nc              3   ~   K   | dk    r4	 dV  t          d          # t          $ r t          d           Y d S w xY wd S )Nr      r<   rn   )rp   	ExceptionrH   r&   s    r   rq   z)TestTryBareExcept.test_yield.<locals>.foo   s^      1uu$GGG$[111  $ $ $(OOOOOO$	 us    ::c                 4    t           |                     S r$   )next)rS   rq   s    r   barz)TestTryBareExcept.test_yield.<locals>.bar   s    A<<r   rr   rw   rh   )r/   r{   rV   r8   rq   s       @r   
test_yieldzTestTryBareExcept.test_yield   s    		$ 	$ 
	$ 
	  	  	  	  
	   	&#b''C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a   **0022B77777s   A

AAc                     t           d             }t                      5 } |d           d d d            n# 1 swxY w Y   |                     |                                                                dg           d S )Nc                      d } |             d S )Nc                  P    	 t          d          #  t          d           Y dS xY w)Nr<   rn   ro   rp   rH   r   r   r   r{   z9TestTryBareExcept.test_closure2.<locals>.foo.<locals>.bar   s0    $[111(OOO22s    %r   r'   r{   s     r   rq   z,TestTryBareExcept.test_closure2.<locals>.foo   s"       CEEEEEr   rr   rn   rh   r/   rq   rV   s      r   test_closure2zTestTryBareExcept.test_closure2   s    		 	 
	  	&CGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	**0022XKAAAAA   7;;c                 4   t           d             }t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |g d           |                     |                                                                dgdz             d S )Nc                 @    d }d t          |g d          D             S )Nc                 R    	 t          d          #  t          d           | cY S xY w)Nr<   rn   r   rS   s    r   r{   z9TestTryBareExcept.test_closure3.<locals>.foo.<locals>.bar  s2    $[111(OOOHHHs    &c                     g | ]}|S r   r   .0r'   s     r   
<listcomp>z@TestTryBareExcept.test_closure3.<locals>.foo.<locals>.<listcomp>  s    333!A333r   r3   r5   rC   )mapr   s     r   rq   z,TestTryBareExcept.test_closure3.<locals>.foo
  s5       43s3			223333r   rr   r   rn   rC   rh   r/   rq   rV   r8   s       r   test_closure3zTestTryBareExcept.test_closure3	  s    		4 	4 
	4  	&#b''C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	iii(((**0022XK!OEEEEEr   c                    t           d             }t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                                                d           |                     |           t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                d           |                     |g d           d S )Nc                 t    d }	 d t          |ddd| g          D             S #  t          d           Y d S xY w)Nc                 0    | dk     rt          d          | S )Nr   r<   rp   r   s    r   r{   z9TestTryBareExcept.test_closure4.<locals>.foo.<locals>.bar  s    q55$[111r   c                     g | ]}|S r   r   r   s     r   r   z@TestTryBareExcept.test_closure4.<locals>.foo.<locals>.<listcomp>#  s    :::a:::r   r3   r5   rC   rn   )r   rH   r   s     r   rq   z,TestTryBareExcept.test_closure4.<locals>.foo  sV      
 ::3sQ1aL#9#9:::: hs   # 7r9   rn       )r3   r5   rC   r   )r   r   r.   rT   striprs   r   s       r   test_closure4zTestTryBareExcept.test_closure4  su   			  		  
		   	&#b''C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	**0022H===# 	&#a&&C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	**B///lll+++++s   7;;B77B;>B;c                     t           d             }t                      5 } |             d d d            n# 1 swxY w Y   |                     |                                                                dg           d S )Nc                      t          j        d          } 	 t           j                            |           }d S #  t	          d           |cY S xY w)N)r   r   rn   )npzeroslinalgcholeskyrH   )achols     r   rq   z0TestTryBareExcept.test_real_problem.<locals>.foo4  sL      Ay))!,,hs	   7 Arn   rh   r   s      r   test_real_problemz#TestTryBareExcept.test_real_problem2  s    		 	 
	  	&CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	**0022XK@@@@@s   6::c           	      :   t           d             }t                      5 } |d           d d d            n# 1 swxY w Y   |                     |                                                                dgdz  d t          dd          D             z              d S )Nc                 .   t          |           D ]&}	 |dk    rt          #  t          d           Y $xY w	 	 	 |dk    rt          n#  t          d           t          xY wd S #  t          d           t          xY w#  t          d           Y d S xY w)Nr]   rn   CAUGHT1CAUGHT2CAUGHT3)rZ   rp   rH   )r[   r\   s     r   rq   z,TestTryBareExcept.test_for_loop.<locals>.fooC  s     1XX % %$1uu(( $(OOOOO%	)- 1uu&0 0  %-!),,,",,	  %u
)i(((((%)$$$$$$s1   !4A A% A  A% %A==B   Brr   rn   r   c                     g | ]}d |z  S )zCAUGHT%sr   )r   r\   s     r   r   z3TestTryBareExcept.test_for_loop.<locals>.<listcomp>`  s    CCC!zA~CCCr   r3   )r   r   r.   rT   rU   rZ   r   s      r   test_for_loopzTestTryBareExcept.test_for_loopB  s    		% 	% 
	%.  	&CGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%K!OCCuQ{{CCCC	
 	
 	
 	
 	
r   c                 h    t           d             } |d          }|                     |d           d S )Nc                     	 n#  Y nxY w| S r$   r   r&   s    r   rq   z,TestTryBareExcept.test_try_pass.<locals>.food  s    Hs   rg   r-   )r/   rq   r8   s      r   test_try_passzTestTryBareExcept.test_try_passc  sF    		 	 
	 c#hhc"""""r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  .    	 t          d          #   xY wNERRORr   r   r   r   r,   z6TestTryBareExcept.test_try_except_reraise.<locals>.udtp  s!     )))s    4The re-raising of an exception is not yet supported.r   r:   r   assertInr;   r<   r/   r,   r=   s      r   test_try_except_reraisez)TestTryBareExcept.test_try_except_reraiseo      		 	 
	 788 	FCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	B !!	
 	
 	
 	
 	
   AA	AN)r   r   r   __doc__r0   r>   rI   rW   rb   rj   rt   r|   r   r   r   r   r   r   r   r   r   r   r   r!   r!      s        . . ."0 0 02  "+
 +
 +
Z(! (! (!T# # #BB B B$8 8 8(B B B F F F", , ,0 A A A
 
 
B
# 
# 
#
 
 
 
 
r   r!   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestTryExceptCaughtc                    t           d             }t                      5 } |d           d d d            n# 1 swxY w Y   |                     |                                                                g d           t                      5 } |d           d d d            n# 1 swxY w Y   |                     |                                                                g d           d S )Nc                     	 t          d           | rt          d          t          d           n# t          $ r t          d           Y nw xY wt          d           d S )NrL   321rM   rN   rO   rH   ZeroDivisionErrorrx   r&   s    r   r,   z5TestTryExceptCaught.test_catch_exception.<locals>.udt  sn    c


 3+E222c



   c




#JJJJJs   /2 AAT)rL   rN   rO   FrL   rM   rO   rh   )r/   r,   rV   s      r   test_catch_exceptionz(TestTryExceptCaught.test_catch_exception  ss   		 	 
	  	&CIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%OO	
 	
 	
  	&CJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%OO	
 	
 	
 	
 	
s   7;;B$$B(+B(c                 2   t           d             }t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                                                ddg           |                     |d           t                      5 } |d          }d d d            n# 1 swxY w Y   |                     |                                                                g d           |                     |d           d S )	Nc                     	 t          d           | rt          t          d           d}n## t          $ r t          d           d}|cY S w xY wt          d           |S )NrL   rM   rg   rN   rf   rO   r   )r'   rs     r   r,   z5TestTryExceptCaught.test_return_in_catch.<locals>.udt  sx    	c


 ,++c


   c


 #JJJHs   ), AATrL   rN   rf   Fr   rg   rh   ri   s       r   test_return_in_catchz(TestTryExceptCaught.test_return_in_catch  s   		 	 
	  	&#d))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%#J	
 	
 	
 	c"""  	&#e**C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	OO##%%OO	
 	
 	
 	c"""""rk   c                     t           d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                 V    	 | rt           d}n# t          $ r}d}|cY d }~S d }~ww xY w|S )Nrg   rf   )r   rx   )r'   r   es      r   r,   z1TestTryExceptCaught.test_save_caught.<locals>.udt  sV     ,++    Hs    
&!&&Tz3Exception object cannot be stored into variable (e)r   r   s      r   test_save_caughtz$TestTryExceptCaught.test_save_caught  s    		 	 
	 788 	FCIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	A !!	
 	
 	
 	
 	
s   AA
Ac                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  @    	 t          d          # t          $ r  w xY wr   rp   rx   r   r   r   r,   z8TestTryExceptCaught.test_try_except_reraise.<locals>.udt  s3     )))   s    r   r   r   s      r   r   z+TestTryExceptCaught.test_try_except_reraise  r   r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  `    	 t          d          # t          $ r 	  # t          $ r  w xY ww xY wr   r   r   r   r   r,   z>TestTryExceptCaught.test_try_except_reraise_chain.<locals>.udt  sV     )))       s    
-)-r   r   r   s      r   test_try_except_reraise_chainz1TestTryExceptCaught.test_try_except_reraise_chain  s    		 	 
	 788 	FCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	B !!	
 	
 	
 	
 	
r   c                     t           d             }|                      |d          d           |                      |d          d           d S )Nc                 :    	 d| z   d| z  S # t           $ r Y dS w xY w)Nr3     )rx   rR   s    r   r,   z7TestTryExceptCaught.test_division_operator.<locals>.udt  s?    A 1u    vvs    
r   r   r5   g      ?r-   r/   r,   s     r   test_division_operatorz*TestTryExceptCaught.test_division_operator  sa     
	 	 
	 	Q(((Q%%%%%r   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r     so        
 
 
<"# "# "#H
 
 
&
 
 

 
 
$& & & & &r   r   c                   $    e Zd ZdZd Zd Zd ZdS )TestTryExceptNestedzTests for complicated nestingc                 f   t                      5 } ||i | d d d            n# 1 swxY w Y   |                                }t                      5 } ||i | d d d            n# 1 swxY w Y   |                                }|                     ||d                    ||                     d S )Nzargs={} kwargs={})msg)r   rT   r.   format)r/   cfuncpyfuncargskwargsrV   expectgots           r   check_comparez!TestTryExceptNested.check_compare	  sE    	$&FD#F###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$"" 	#&E4"6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#ooC#**488 	 	
 	
 	
 	
 	
s   	$((	A&&A*-A*c           	          t           d             }t          t          ddgd                    }|                     |           |D ]'\  }}}}|                     ||j        ||||           (d S )Nc                    t          d           | rHt          d           	 t          d           |rt          d           t          d          t          d           t          d           n# t          $ r t          d           	 t          d	           	 t          d
           |rt          d           t          d          t          d           t          d           n# t          $ r t          d           Y nw xY wt          d           n# t          $ r t          d           Y nw xY wt          d           Y nw xY wt          d           t          d           d S )NrL   rM   rN   rO   rR   rP   GrQ   HIJrS   KMLONPQRrH   r   rx   r'   rR   rS   ps       r   r,   z5TestTryExceptNested.test_try_except_else.<locals>.udt  s~   #JJJ c


#JJJ +c


%cll*#JJJ* #JJJJ) !   #JJJ#c


	'!#JJJ  3 %c


&-cll 2!#JJJ "#JJJJ  ) ' ' '!#JJJJJ' c



 % # # #c




# #JJJJJ%* c


#JJJJJsY   >A1 1E	D>C)D)DDDDE	D41E	3D44E	E	TFr   repeatr   r   listr   
assertTruer   py_func)r/   r,   casesr'   rR   rS   r   s          r   test_try_except_elsez(TestTryExceptNested.test_try_except_else  s    	 	  	 
 	D WdE]155566 	 	JAq!QS[qA     	 	r   c                     t           d             }t          t          ddgd                    }|                     |           |D ]#\  }}|                     ||j        ||           $d S )Nc                    	 t          d           | rt          d           t          t          d           n#  t          d           Y nxY w	 t          d           |rt          d           t          	 t          d           n# t          $ r t          d           Y nw xY wt          d	           d S # t          d	           w xY w# 	 t          d           |rt          d           t          	 t          d           n# t          $ r t          d           Y nw xY wt          d	           w # t          d	           w xY wxY w)
NrL   rM   rN   rO   rP   rQ   r   r   r   r   r   qs     r   r,   z8TestTryExceptNested.test_try_except_finally.<locals>.udtC  sc   c


 "#JJJ!Mc



c





#JJJ &c


%& #JJJJ !   #JJJJJ
 #JJJJJE#JJJJ
#JJJ &c


%& #JJJJ !   #JJJJJ
 #JJJJE#JJJJsz   69 C A
C 'B 8B8 B$!B8 #B$$B8 8C	E	'D6D5D"D5!D""D5%E	5EE	TFr5   r   r   r   )r/   r,   r   r   r   s        r   test_try_except_finallyz+TestTryExceptNested.test_try_except_finallyB  s    		 	 
	, WdE]155566 	 	DAqS[q     	 	r   N)r   r   r   r   r   r   r   r   r   r   r   r     sH        ##
 
 
* * *X    r   r   c                        e Zd Zd Zd Zd ZdS )TestTryExceptRefctc                 N   t           d             } |dd          }|                     t          |          t          t          d                                |dd          }|                     t          |          t          t          d                               d S )Nc                     t          j                    }	 t          |           D ]$}||k    rt          |                    |           %	 |S # t
          $ r |cY S w xY wr$   )r   ListrZ   
IndexErrorappendrx   )r[   raise_atlstr\   s       r   r,   z6TestTryExceptRefct.test_list_direct_raise.<locals>.udte  sy    *,,Cq " "AH}}((JJqMMMM" 
    


s   4A AArr   r]   r  r   r.   r   rZ   )r/   r,   outs      r   test_list_direct_raisez)TestTryExceptRefct.test_list_direct_raised  s    	
	 
	 

	 c"q!!!cDqNN333c"r"""cDrOO44444r   c           	         t           d             t           fd            } |dd          }|                     t          |          dgt          t          d                    z               |dd          }|                     t          |          dgt          t          d                    z              d S )Nc                 n    t          |          D ]$}||k    rt          |                     |           %| S r$   )rZ   r  r  )r  r[   r  r\   s       r   appenderz=TestTryExceptRefct.test_list_indirect_raise.<locals>.appenderx  s<    1XX  ==$$

1Jr   c                     t          j                    }|                    d           	  || |           |S # t          $ r |cY S w xY w)N  )r   r  r  rx   )r[   r  r  r  s      r   r,   z8TestTryExceptRefct.test_list_indirect_raise.<locals>.udt  sf    *,,CJJva*** 
    


s   : A	A	rr   r]   r	  r  r
  )r/   r,   r  r  s      @r   test_list_indirect_raisez+TestTryExceptRefct.test_list_indirect_raisew  s    		 	 
	 
	 	 	 	 
	 c"q!!!cVHtE!HH~~$=>>>c"r"""cVHtE"II$>?????r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     t	          |j                  d           d S )Nc                     	 t          j                    } t          d           |                     d           t          d           |                     d           t          d           | S # t          $ r t          d           Y d S w xY w)NrL   r   rM   fdarN   rO   )r   r  rH   r  rx   )r  s    r   r,   z<TestTryExceptRefct.test_incompatible_refinement.<locals>.udt  s    	jllc




1c




5!!!c



   c





s   A+A. .B
Bz@Cannot refine type|cannot safely cast unicode_type to int(32|64))r   r:   r   assertRegexr;   r<   r   s      r   test_incompatible_refinementz/TestTryExceptRefct.test_incompatible_refinement  s    	
	 
	 

	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!O	
 	
 	
 	
 	
r   N)r   r   r   r  r  r  r   r   r   r  r  c  sD        5 5 5&@ @ @2
 
 
 
 
r   r  c                       e Zd Zd Zeeeed                                                 Zeeeed                                                 Z	d Z
dS )TestTryExceptOtherControlFlowc                 B   t           d             }|                     t           |dd                    t          t          d                               |                     t           |dd                    t          t          d                               d S )Nc              3   v   K   t          |           D ]&}	 ||k    rt          |V  # t          $ r Y  d S w xY wd S r$   )rZ   rp   rx   )r[   r'   r\   s      r   r,   z5TestTryExceptOtherControlFlow.test_yield.<locals>.udt  sh      1XX  Avv((GGGG    FFF s   '
66rr   r]   r
  r   s     r   r|   z(TestTryExceptOtherControlFlow.test_yield  s    		 	 
	 	cc"ajj))4a>>:::cc"bkk**DrOO<<<<<r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   d}|                     |t	          |j                             d S )Nc                      	 t                      5  t          t                                 d d d            d S # 1 swxY w Y   d S # t          $ r Y d S w xY wr$   )r   rH   objectrx   r   r   r   r,   z7TestTryExceptOtherControlFlow.test_objmode.<locals>.udt  s    YY $ $&((OOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $   s.   A 9A =A  =A 
AAlunsupported control flow: with-context contains branches (i.e. break/return/raise) that can leave the block r   r:   r
   r   r;   r<   )r/   r,   r=   r   s       r   test_objmodez*TestTryExceptOtherControlFlow.test_objmode  s    
 
	 	 
	 }-- 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	E !!	
 	
 	
 	
 	
r   c                     d t           fd            }|                     t                    5 } |             d d d            n# 1 swxY w Y   d}|                     |t	          |j                             d S )Nc                     t          j        t          t          |                                                               S r$   )r   asarrayr   reversedtolistr&   s    r   r{   zCTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.bar  s*    :d8AHHJJ#7#788999r   c                      t          j        d          } t          j        |           }	 t          d          5  | |           z  }d d d            n# 1 swxY w Y   n# t          $ r Y nw xY w|S )Nr]   zintp[:]r   )r   arange
zeros_liker   rx   )r'   rR   r{   s     r   r!  zLTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.test_objmode  s    	!Aa  Ay)))    QKA                                 Hs4   A" A
A" AA" AA" "
A/.A/r  r   )r/   r!  r=   r   r{   s       @r   test_objmode_output_typez6TestTryExceptOtherControlFlow.test_objmode_output_type  s    
	: 	: 	: 
		 		 		 		 
		 }-- 	LNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	E !!	
 	
 	
 	
 	
s   AAAc                    d }t          j        |          D ]}|j        dk    r n|                     d           t	          j        i |j                  }d}|j                                        D ]A\  }}|	                    t          j                  D ]}d}|j        r||j        d         v rd}B|s|                     d           d S d S )	Nc                  L    	 t           # t           $ r t          d          w xY wr   )rx   rp   r   r   r   r   zMTestTryExceptOtherControlFlow.test_reraise_opcode_unreachable.<locals>.pyfunc  s5    * * * * )))*s   	 #RERAISEz!expected RERAISE opcode not foundFz8Unreachable condition reached (op code RERAISE executed)r   Tz.expected RERAISE unreachable message not found)disget_instructionsopnamefailr   get_ir_of_code__code__blocksitems
find_instsr	   StaticRaiseexc_args)	r/   r   instfunc_irfoundlblblkstmtr   s	            r   test_reraise_opcode_unreachablez=TestTryExceptOtherControlFlow.test_reraise_opcode_unreachable  s   
	* 	* 	*
 (00 	; 	;D{i'' ( II9:::)"fo>>,,.. 	! 	!HCr~66 ! ! Q= !SDM!,<%<%< E!  	HIIFGGGGG	H 	Hr   N)r   r   r   r|   r   r   r   r   r!  r*  r?  r   r   r   r  r    s        = = = 
 
    
$ 
 
    
2H H H H Hr   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestTryExceptParforsc                     d }dg} || }|                        t          d          |          | |           |                        t          d          |          | |           d S )Nc                 d    d}t          |           D ]}	 |dz  }	# t          $ r |dz  }Y w xY w|S )Nr   r3   r   rx   r[   cr\   s      r   r,   z>TestTryExceptParfors.test_try_in_prange_reduction.<locals>.udt
  sY    AAYY  FAA    FAAAHs   --rr   FparallelT)r.   r   r/   r,   r   r   s       r   test_try_in_prange_reductionz1TestTryExceptParfors.test_try_in_prange_reduction  s    	 	 	 td2-u---c22D96BBB1,t,,,S1148&AAAAAr   c                    d }dg} || }|                        t          d          |          | |           t          j        d          5 }t          j        dt
                     |                        t          d          |          | |           d d d            n# 1 swxY w Y   |                      t          |          d           |                     d	t          |d
                              d S )Nc                 ^    d}	 t          |           D ]}|dz  }	 |S # t          $ r Y dS w xY w)Nr   r3   r   rD  rE  s      r   r,   zCTestTryExceptParfors.test_try_outside_prange_reduction.<locals>.udt  s\    A  AFAA
     vvs    
,,rr   FrG  T)recordalwaysr3   z5no transformation for parallel execution was possibler   )	r.   r   warningscatch_warningssimplefilterr   lenr   r;   )r/   r,   r   r   ws        r   !test_try_outside_prange_reductionz6TestTryExceptParfors.test_try_outside_prange_reduction  se   	 	 	 td2-u---c22D96BBB$D111 	FQ!(,CDDD50T400055t<fEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Q###M!A$ii	! 	! 	! 	! 	!s   AB((B,/B,c                    d }t          j        d          dg} || }|                       t          d          |          | |           |                       t          d          |          | |           d S )Nc                     |                                  }t          | j                  D ]3}	 ||k    rt          | |         |z   ||<   # t          $ r d||<   Y 0w xY w|S Nr9   copyr   sizerp   rx   arrr'   r  r\   s       r   r,   z8TestTryExceptParfors.test_try_in_prange_map.<locals>.udt0  s|    ((**CCH%%     Avv(( VaZCFF       CFFF Js   AAArr      FrG  Tr   r(  assertPreciseEqualr   rI  s       r   test_try_in_prange_mapz+TestTryExceptParfors.test_try_in_prange_map/      		 		 		 	"q!d 9 4e 4 4 4S 9 94 @&III 8 3d 3 3 3C 8 8$ ?HHHHHr   c                    d }t          j        d          dg} || }|                       t          d          |          | |           |                       t          d          |          | |           d S )Nc                     |                                  }	 t          | j                  D ]}||k    rt          | |         |z   ||<   n# t          $ r d||<   Y nw xY w|S rW  rX  r[  s       r   r,   z=TestTryExceptParfors.test_try_outside_prange_map.<locals>.udtA  s    ((**C)) ( (AAvv(( VaZCFF(    AJs   2A	 	AArr   r]  FrG  Tr^  rI  s       r   test_try_outside_prange_mapz0TestTryExceptParfors.test_try_outside_prange_map@  ra  r   N)r   r   r   rJ  rT  r`  rd  r   r   r   rA  rA    s[        B B B ! ! !.I I I"I I I I Ir   rA  __main__)(rO  r.  	itertoolsr   numpyr   numbar   r   r   r   
numba.corer   r	   numba.core.errorsr
   r   r   r   numba.tests.supportr   r   r   r   r   r   r   r   r   r   rx   r   r!   r   r   r  r  rA  r   mainr   r   r   <module>rm     s    



           . . . . . . . . . . . . # # # # # # # #                                  	 	 	 	 	i 	 	 	d
 d
 d
 d
 d
 d
 d
 d
ND& D& D& D& D&( D& D& D&NZ Z Z Z Z( Z Z Zz@
 @
 @
 @
 @
( @
 @
 @
F\H \H \H \H \HH \H \H \H~ II II II II II8 II II IIX zHMOOOOO r   