
     i?                     \   S SK rS SKrS SKrS SKJrJr  S SKJrJ	r	J
r
  S SKJrJrJrJrJr  S SKrSSS.rSSS.rSSS.rSSSS	.r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      rS rS rS rS rS rS r S r!S r" " S S\5      r#\$S:X  a  \RJ                  " 5         gg)    N)jitnjit)typeserrorsutils)TestCaseexpected_failure_py311expected_failure_py312expected_failure_py313expected_failure_py314FT)nopythonforceobj)r   _nrt)r   nogilr   c                       \ rS rSrSrg)MyError    N__name__
__module____qualname____firstlineno____static_attributes__r       R/mnt/rpi/venvs/whisper/lib/python3.13/site-packages/numba/tests/test_exceptions.pyr   r          r   r   c                       \ rS rSrSrg)
OtherError   r   Nr   r   r   r   r   r      r   r   r   c                   :   ^  \ rS rSrU 4S jrS rU 4S jrSrU =r$ )UDEArgsToSuper   c                 8   > [         [        U ]  U5        X l        g N)superr"   __init__value0selfargr(   	__class__s      r   r'   UDEArgsToSuper.__init__   s    nd,S1r   c                     [        XR                  5      (       d  gSnX R                  UR                  :H  -  nX R                  UR                  :H  -  nU$ NFT)
isinstancer,   argsr(   r*   othersames      r   __eq__UDEArgsToSuper.__eq__"   sH    %00		UZZ''u||++r   c                 h   > [        [        [        5      R                  5       U R                  45      $ r%   )hashr&   r"   __hash__r(   r*   r,   s    r   r9   UDEArgsToSuper.__hash__*   s%    U>*335t{{CDDr   )r(   	r   r   r   r   r'   r5   r9   r   __classcell__r,   s   @r   r"   r"      s    E Er   r"   c                   :   ^  \ rS rSrU 4S jrS rU 4S jrSrU =r$ )UDENoArgSuper.   c                 B   > [         [        U ]  5         Xl        X l        g r%   )r&   r@   r'   deferargr(   r)   s      r   r'   UDENoArgSuper.__init__/   s    mT+-r   c                     [        XR                  5      (       d  gSnX R                  UR                  :H  -  nX R                  UR                  :H  -  nX R                  UR                  :H  -  nU$ r/   )r0   r,   r1   rC   r(   r2   s      r   r5   UDENoArgSuper.__eq__4   s]    %00		UZZ''//u||++r   c                 ~   > [        [        [        5      R                  5       U R                  U R
                  45      $ r%   )r8   r&   r@   r9   rC   r(   r:   s    r   r9   UDENoArgSuper.__hash__=   s2    U=)224dmm[[" # 	#r   )rC   r(   r<   r>   s   @r   r@   r@   .   s    
# #r   r@   c                    ^  U 4S jnU$ )Nc                 p   > U S:X  a  TeU S:X  a  [         eU S:X  a  [        R                  R                  eU $ N         
ValueErrornplinalgLinAlgError)iexcs    r   raiserraise_class.<locals>.raiserC   s8    6I!V!V))'''r   r   rU   rV   s   ` r   raise_classrY   B   s     Mr   c                    ^ ^ UU 4S jnU$ )Nc                    > U S:X  a	  T" TS5      eU S:X  a  [        TS5      eU S:X  a   [        R                  R                  TS5      eU $ rK   rO   rT   r+   rU   s    r   rV   raise_instance.<locals>.raiserP   M    6c1+!VS!$$!V))''Q//r   r   )rU   r+   rV   s   `` r   raise_instancer_   O   s     Mr   c                    ^  U 4S jnU$ )Nc                    > U S:X  a	  T" US5      eU S:X  a  [        US5      eU S:X  a   [        R                  R                  US5      eU $ rK   rO   r\   s     r   rV   +raise_instance_runtime_args.<locals>.raiser\   r^   r   r   rX   s   ` r   raise_instance_runtime_argsrc   [   s     Mr   c                      e r%   r   r   r   r   reraisere   g   s    	r   c                    ^  U 4S jnU$ )Nc                 8   > U S:X  a  [        SS5      eT" U 5      $ )NrN   bar)r   )rT   inners    r   outerouter_function.<locals>.outerl   s     6UA&&Qxr   r   )ri   rj   s   ` r   outer_functionrl   k   s     Lr   c                     U S:X  d   S5       eg )NrL   rh   r   rT   s    r   assert_usecasero   s   s    656r   c                      [        5       er%   r"   r   r   r   ude_bug_usecaserr   w   s    

r   c                     [        U 5      er%   rP   )r+   s    r   raise_runtime_valueru   {   s    
S/r   c                   ,   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*\+\,\-\.S) 5       5       5       5       r/S*r0g+),TestRaising   c                    S n[        [        R                  " [        R                  SS5      [        R                  45      " U5      n[        R
                  " S[        R                  S9nU R                  U" US5      U" US5      5        U R                  [        5       nU" US5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nc                      U R                   U   $ r%   )shape)arT   s     r   pyfunc5TestRaising.test_unituple_index_error.<locals>.pyfunc   s    771:r   rL   ArM   )dtyper   ztuple index out of range)r   r   Arrayint32rQ   emptyassertEqualassertRaises
IndexErrorstr	exception)r*   r}   cfuncr|   cms        r   test_unituple_index_error%TestRaising.test_unituple_index_error   s    	 ekk%++q#6DFvNHHQbhh'q!fQl3z*b!QK +R\\*,FG +*s   !
C
C'c                 n   U[         [        [        [        4;   d   eU R	                  U5       nU" U6   S S S 5        U R	                  U5       nU" U6   S S S 5        U R                  WR                  R                  WR                  R                  5        [        UR                  [        [        45      (       a(  U R                  UR                  UR                  :H  5        U[        L a3   U" U6    U" U6   [#        W	W5       H  u  pU R%                  X5        M     g g ! , (       d  f       N= f! , (       d  f       N= f! [         a.    [        R                  " [        R                   " 5       6 nUSS  n	 Nf = f! [         a.    [        R                  " [        R                   " 5       6 n
U
SS  n Nf = f)N)force_pyobj_flagsno_pyobj_flagsno_pyobj_flags_w_nrtno_gil_flagsr   r   r   r1   r0   r"   r@   
assertTrue	Exception	tracebackformat_exceptionsysexc_infozipassertIn)r*   	exec_moder}   r   expected_error_classr1   pyerrjiterr	py_framesexpected_framesc_frames
got_framesexpfgotfs                 r   check_against_python TestRaising.check_against_python   sz    .1<A A 	A A 34DM 5344L 5--v/?/?/D/DE eoo'FGGOOEOOv/?/??@ &1
+t "/:>
 d)	 ?# ' 5444   1%66G	"+BC.1  +$55s||~F%bc]
+s;   DD0,E 2E< 
D-0
D>5E98E9<5F43F4c                 L   [        [        5      n[        [        R                  440 UD6" U5      nU R                  U" S5      S5        U R                  XU[        S5        U R                  XU[        S5        U R                  XU[        R                  R                  S5        g )Nr   rL   rM   rN   )rY   r   r   r   r   r   r   rP   rQ   rR   rS   r*   flagsr}   r   s       r   check_raise_classTestRaising.check_raise_class   s    W%U[[N,e,V4q1%!!%C!!%
AF!!%"$))"7"7	<r   c                 *    U R                  [        S9  g Nr   )r   r   r*   s    r   test_raise_class_nopython%TestRaising.test_raise_class_nopython   s    ^4r   c                 *    U R                  [        S9  g r   )r   r   r   s    r   test_raise_class_objmode$TestRaising.test_raise_class_objmode   s    %67r   c                 l   [         [        [        4 H  n[        US5      n[	        [
        R                  440 UD6" U5      nU R                  U" S5      S5        U R                  XXBS5        U R                  XU[        S5        U R                  XU[        R                  R                  S5        M     g )Nsome messager   rL   rM   rN   )r   r"   r@   r_   r   r   r   r   r   rP   rQ   rR   rS   r*   r   clazzr}   r   s        r   check_raise_instance TestRaising.check_raise_instance   s    ~#%E#E>:F0%08EU1Xq)%%eU1E%%eUJJ%%eU&(ii&;&;Q@%r   c                 *    U R                  [        S9  g r   )r   r   r   s    r   test_raise_instance_objmode'TestRaising.test_raise_instance_objmode   s    !!(9!:r   c                 *    U R                  [        S9  g r   )r   r   r   s    r   test_raise_instance_nopython(TestRaising.test_raise_instance_nopython   s    !!!7r   c                 >   [         [        [        4 H  n[        US5      n[	        U5      n[        S0 UD6" U5      n[        S0 UD6" [	        U5      5      nU R                  XXsS5        U R                  XU[        S5        U R                  XU[        S5        M     g)z4
Check exception propagation from nested functions.
r   rL   rM   rN   Nr   )	r   r"   r@   r_   rl   r   r   rP   r   )r*   r   jit_argsr   inner_pyfuncr}   inner_cfuncr   s           r   check_raise_nestedTestRaising.check_raise_nested   s     ~#%E)%@L#L1F//,7KO(ON;$?@E%%eU1E%%eUJJ%%eUJJ%r   c                 ,    U R                  [        SS9  g )NT)r   )r   r   r   s    r   test_raise_nested_objmode%TestRaising.test_raise_nested_objmode   s     1DAr   c                 ,    U R                  [        SS9  g )NT)r   )r   r   r   s    r   test_raise_nested_nopython&TestRaising.test_raise_nested_nopython   s    >r   c                    ^^^	 S m	[         n[        S0 UD6" U5      nU	4S j[        4U	4S j[        4U	4S j[        44 H0  u  mmUU4S jnU" U5      nU" U5      nU R                  XUT5        M2     g )Nc                     U er%   r   )rU   s    r   	raise_exc,TestRaising.check_reraise.<locals>.raise_exc   s    Ir   c                     > T " [         5      $ r%   )ZeroDivisionErrorr   s   r   <lambda>+TestRaising.check_reraise.<locals>.<lambda>   s    ),=">r   c                  (   > T " [        SS5      5      $ NmsgrL   rq   r   s   r   r   r      s    )N5!,D"Er   c                  (   > T " [        SS5      5      $ r   )r@   r   s   r   r   r      s    )M%,C"Dr   c                    >^  UU U4S jnU$ )Nc                  <   >  T" 5         g ! T  a
    T" 5          g f = fr%   r   )errfnops   r   impl9TestRaising.check_reraise.<locals>.gen_impl.<locals>.impl   s!     s    r   )r   r   r   r   s   ` r   gen_impl+TestRaising.check_reraise.<locals>.gen_impl   s    
 r   r   )re   r   r   r"   r@   r   )
r*   r   r}   r   r   pybasedcbasedr   r   r   s
          @@@r   check_reraiseTestRaising.check_reraise   s|    	 % (>*,E')D&(	)GB v&Ge_F%%efcC)r   c                 *    U R                  [        S9  g r   )r   r   r   s    r   test_reraise_objmode TestRaising.test_reraise_objmode  s    !23r   c                 *    U R                  [        S9  g r   )r   r   r   s    r   test_reraise_nopython!TestRaising.test_reraise_nopython  s    0r   c                    [        U5      n[        [        R                  440 UD6" U5      nU R	                  [
        5       nU" S5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)NrL   z)exceptions must derive from BaseException)	rY   r   r   r   r   	TypeErrorr   r   r   )r*   clsr   r}   r   r   s         r   check_raise_invalid_class%TestRaising.check_raise_invalid_class  sh    S!U[[N,e,V4y)R!H *R\\*D	F *)s   	A99
Bc                 \    U R                  [        [        S9  U R                  S[        S9  g )Nr   rL   )r   intr   r   s    r    test_raise_invalid_class_objmode,TestRaising.test_raise_invalid_class_objmode  s*    &&s2C&D&&q0A&Br   c                    SnU R                  [        R                  5       nU R                  [        [
        S9  S S S 5        U R                  U[        WR                  5      5        U R                  [        R                  5       nU R                  S[
        S9  S S S 5        U R                  U[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nz8Encountered unsupported constant type used for exceptionr   rL   )	r   r   UnsupportedErrorr   r   r   r   r   r   )r*   r   raisess      r   !test_raise_invalid_class_nopython-TestRaising.test_raise_invalid_class_nopython  s    Hv6676**3n*E 8c3v//01v6676**1N*C 8c3v//01 87 87s   C
C

C
C)c                     [         S 5       nSnU R                  [        R                  5       nU" 5         S S S 5        U R	                  U[        WR                  5      5        g ! , (       d  f       N4= f)Nc                      Se)Nillegalr   r   r   r   foo8TestRaising.test_raise_bare_string_nopython.<locals>.foo!  s    Or   zCDirectly raising a string constant as an exception is not supported)r   r   r   r   r   r   r   )r*   r   r   r   s       r   test_raise_bare_string_nopython+TestRaising.test_raise_bare_string_nopython   s]    		 
	v6676E 8c3v//01 87s   A$$
A2c                     [         n[        [        R                  440 UD6" U5      nU" S5        U R	                  XU[
        S5        g )NrL   rM   )ro   r   r   r   r   AssertionErrorr   s       r   check_assert_statement"TestRaising.check_assert_statement*  s<    U[[N,e,V4a!!%Jr   c                 *    U R                  [        S9  g r   )r  r   r   s    r   test_assert_statement_objmode)TestRaising.test_assert_statement_objmode0  s    ##*;#<r   c                 *    U R                  [        S9  g r   )r  r   r   s    r   test_assert_statement_nopython*TestRaising.test_assert_statement_nopython3  s    ##.#9r   c                 p   SnSnSnSnU[         4U[        4U[        4/n[        R                  S:  a.  UR                  U[         45        UR                  U[         45        U HO  u  px0 n	[        USU0U	5        U	S   n
[        [        R                  440 UD6" U
5      nU R                  XXS5        MQ     g )	Nz def f(a):
  raise exc('msg', 10)zdef f(a):
  assert a != 1z)def f[T: int](a: T) -> T:
  assert a != 1z*def f[T: int
](a: T) -> T:
  assert a != 1)rN      rU   frL   )r  r"   r@   r   	PYVERSIONappendexecr   r   r   r   )r*   r   simple_raiseassert_raisepy312_pep695_raisepy312_pep695_raise_2
test_casesf_textrU   locr}   r   s               r   check_raise_from_exec_string(TestRaising.check_raise_from_exec_string6  s    :3IM>*>*=)


 ??g%1>BC3^DE%KFC%s+XF0%08E%%eUC &r   c                 *    U R                  [        S9  g r   )r  r   r   s    r   $test_assert_from_exec_string_objmode0TestRaising.test_assert_from_exec_string_objmodeL  s    ))0A)Br   c                 *    U R                  [        S9  g r   )r  r   r   s    r   %test_assert_from_exec_string_nopython1TestRaising.test_assert_from_exec_string_nopythonO  s    )))?r   c                 `    [         n[        S0 UD6" U5      nU R                  XU[        5        g )Nr   )rr   r   r   r   r   s       r   check_user_code_error_traceback+TestRaising.check_user_code_error_tracebackR  s-     ! % (!!%	Br   c                 *    U R                  [        S9  g r   )r#  r   r   s    r   &test_user_code_error_traceback_objmode2TestRaising.test_user_code_error_traceback_objmodeZ  s    ,,3D,Er   c                 *    U R                  [        S9  g r   )r#  r   r   s    r   'test_user_code_error_traceback_nopython3TestRaising.test_user_code_error_traceback_nopython]  s    ,,>,Br   c                     [         n[        [        R                  440 UD6" U5      nU R	                  XU[
        S5        g )Nhello)ru   r   r   stringr   rP   r   s       r   check_raise_runtime_value%TestRaising.check_raise_runtime_value`  s5    $U\\O-u-f5!!%
GLr   c                 *    U R                  [        S9  g r   )r.  r   r   s    r    test_raise_runtime_value_objmode,TestRaising.test_raise_runtime_value_objmodee  s    &&->&?r   c                 *    U R                  [        S9  g r   )r.  r   r   s    r   !test_raise_runtime_value_nopython-TestRaising.test_raise_runtime_value_nopythonh  s    &&-A&Br   c                 *    U R                  [        S9  g r   )r.  r   r   s    r   test_raise_runtime_value_nogil*TestRaising.test_raise_runtime_value_nogilk  s    &&\&:r   c           	         [         [        [        4 H  n[        U5      n[	        [
        R                  [
        R                  440 UD6" U5      nU R                  U" SS5      S5        U R                  XXBSS5        U R                  XU[        SS5        U R                  XU[        R                  R                  SS5        M     g )	Nr   testrL   r,  rM   worldrN   rR   )r   r"   r@   rc   r   r   r   r-  r   r   rP   rQ   rR   rS   r   s        r   &check_raise_instance_with_runtime_args2TestRaising.check_raise_instance_with_runtime_argsn  s    ~#%E07Fell3=u=fEEU1f-q1%%eU1gN%%eUJ&-/%%eU&(ii&;&;QJ%r   c                 *    U R                  [        S9  g r   )r<  r   r   s    r   -test_raise_instance_with_runtime_args_objmode9TestRaising.test_raise_instance_with_runtime_args_objmode{  s    33:K3Lr   c                 *    U R                  [        S9  g r   )r<  r   r   s    r   .test_raise_instance_with_runtime_args_nopython:TestRaising.test_raise_instance_with_runtime_args_nopython~  s    33:N3Or   c                 *    U R                  [        S9  g r   )r<  r   r   s    r   +test_raise_instance_with_runtime_args_nogil7TestRaising.test_raise_instance_with_runtime_args_nogil  s    33,3Gr   c                     S nS nS nUS4US4U[         R                  44/nU HA  u  pVSnU R                  [        R                  U5         [        U5      " U5        S S S 5        MC     g ! , (       d  f       MU  = f)Nc                  F    [        S[        R                  " S5      S.5      e)NrL      r|   b)rP   rQ   onesr   r   r   raise_literal_dictCTestRaising.test_dynamic_raise_bad_args.<locals>.raise_literal_dict  s    12771:677r   c                  *    [        [        S5      5      e)NrN   )rP   ranger   r   r   raise_range<TestRaising.test_dynamic_raise_bad_args.<locals>.raise_range  s    U1X&&r   c                 ,    [        U R                  5      er%   )rP   bit_generator)rngs    r   	raise_rng:TestRaising.test_dynamic_raise_bad_args.<locals>.raise_rng  s    S..//r   r   z/.*Cannot convert native .* to a Python object.*)r   npy_rngassertRaisesRegexr   TypingErrorr   )r*   rM  rQ  rV  funcsr}   argtypesr   s           r   test_dynamic_raise_bad_args'TestRaising.test_dynamic_raise_bad_args  s    	8	'	0  $"()
 !&FCC''(:(:C@Xv& A@ !&@@s   A,,
A;	c                     [         S 5       nSnU R                  [        U5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        SSS.5      e)NrL   rN   rJ  rt   r   r   r   raise_literal_dict2@TestRaising.test_dynamic_raise_dict.<locals>.raise_literal_dict2  s    11-..r   z{a: 1, b: 3})r   rY  rP   )r*   ra  r   s      r   test_dynamic_raise_dict#TestRaising.test_dynamic_raise_dict  s=    		/ 
	/ ##J4! 544s	   6
Ac                     [        SS9S 5       nSnU R                  [        R                  U5         U" S5        S S S 5        g ! , (       d  f       g = f)NF)r   c                     [        U 5      er%   rt   rn   s    r   raise_with_no_nrt7TestRaising.test_disable_nrt.<locals>.raise_with_no_nrt      Q-r   zNRT required but not enabled{   )r   rY  r   NumbaRuntimeError)r*   rg  r   s      r   test_disable_nrtTestRaising.test_disable_nrt  sK    	5		  
	  -##F$<$<cBc" CBBs   	A
Ac                    ^ [         S 5       m[         U4S j5       nU R                  UR                  S5      U" S5      5        g )Nc                     [        U 5      er%   rt   r|   s    r   raise_*TestRaising.test_try_raise.<locals>.raise_  ri  r   c                 H   >  T" U 5        U S-   $ ! [          a     U S-   $ f = f)NrL   )r   r|   rq  s    r   	try_raise-TestRaising.test_try_raise.<locals>.try_raise  s7    q	 q5L  q5Ls    
!!rN   )r   r   py_func)r*   ru  rq  s     @r   test_try_raiseTestRaising.test_try_raise  sJ    		  
	  
	 
	 	**1-y|<r   c           
      t  ^ [         S 5       m[         U4S j5       nSSS[        R                  " S5      SS/S[        SS/5      /nTU4 HY  nU HP  nU R	                  [
        5       nU" U5        S S S 5        U R                  U4WR                  R                  5        MR     M[     g ! , (       d  f       N>= f)	Nc                     [        U 5      er%   rt   rp  s    r   rq  .TestRaising.test_dynamic_raise.<locals>.raise_  ri  r   c                 J   >  T" U 5        g ! [          a    [        U 5      ef = fr%   )r   rP   rt  s    r   
try_raise_2TestRaising.test_dynamic_raise.<locals>.try_raise_  s(    $q	 $ m#$s    "rL   g?r,  rN   rM   )rL   rM   )	r   rQ   rL  setr   rP   r   r   r1   )r*   r~  r1   r   r+   erq  s         @r   test_dynamic_raiseTestRaising.test_dynamic_raise  s     
	  
	  
	$ 
	$ GGAJFAK
 :&B&&z2asG 3  #)9)9:  '22s   (	B))
B7r   N)1r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r#  r&  r)  r.  r1  r4  r7  r<  r?  rB  rE  r]  rc  rl  rx  r	   r
   r   r   r  r   r   r   r   rw   rw      s   H(*T<58
@;8KB?D,41FC22K=:D,C@CFCM
@C;JMPH'*"#=  ;    ;r   rw   __main__)&numpyrQ   r   r   numbar   r   
numba.corer   r   r   numba.tests.supportr   r	   r
   r   r   unittestr   r   r   r   r   r   r   r"   r@   rY   r_   rc   re   rl   ro   rr   ru   rw   r   mainr   r   r   <module>r     s     
   + +# #
  "'D9 "E2$($7  4>	i 		 	EY E"#I #(
		
Z;( Z;z
 zMMO r   