
    xKg                        d dl mZ d dlZd dlZd dlmZ  ej                  d      Zej                  ej                         ej                  Zej                  e_
         G d d      Z G d de      Z G d	 d
e      Zej                  dd       Z G d dej$                        Zee_
        edk(  r ej*                          yy)    )StringION)tracingtracec                   (    e Zd ZdZd Zd Zd Zd Zy)CapturedTracez-Capture the trace temporarily for validation.c                 j    t               | _        t        j                  | j                        | _        y N)r   bufferloggingStreamHandlerhandlerselfs    \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_tracing.py__init__zCapturedTrace.__init__   s!    j,,T[[9    c                     t         j                  | _        t               | _        t        j                  | j                        gt         _        y r	   )loggerhandlers	_handlersr   r
   r   r   r   s    r   	__enter__zCapturedTrace.__enter__   s/    j"00=>r   c                 .    | j                   t        _        y r	   )r   r   r   )r   typevalue	tracebacks       r   __exit__zCapturedTrace.__exit__   s    ..r   c                 l    | j                   j                         }|j                  t        dz   d      }|S )N. )r
   getvaluereplace__name__)r   logs     r   r    zCapturedTrace.getvalue   s/    
 kk""$kk(S.,
r   N)r"   
__module____qualname____doc__r   r   r   r     r   r   r   r      s    7:?)r   r   c                       e Zd Zej                  ed               Zej                  ed               ZdZ	d Z
d Z ej                   ee
e            Zej                  dd       Zd Zy)	Classc                      y r	   r'   clss    r   class_methodzClass.class_method%        	r   c                       y r	   r'   r'   r   r   static_methodzClass.static_method*   r.   r   Nc                     | j                   S r	   _Class__testr   s    r   	_test_getzClass._test_get1   s    {{r   c                     || _         y r	   r2   r   r   s     r   	_test_setzClass._test_set4   s	    r   c                      y r	   r'   )r   someotherargskwdss        r   methodzClass.method9       r   c                      y),Generate a deterministic string for testing.z<Class instance>r'   r   s    r   __repr__zClass.__repr__=   s    !r   )r   )r"   r$   r%   r   r   classmethodr-   staticmethodr0   r3   r4   r7   propertytestr=   rA   r'   r   r   r)   r)   #   s    ]]   ]]   F 7==)Y78D]] "r   r)   c                   v    e Zd Zed        Zed        ZdZed        Z	e	j                  d        Z	d Zd Zd Zy)	Class2c                      y r	   r'   r+   s    r   r-   zClass2.class_methodB   r>   r   c                       y r	   r'   r'   r   r   r0   zClass2.static_methodF   r>   r   Nc                     | j                   S r	   _Class2__testr   s    r   rE   zClass2.testK   s    {{r   c                     || _         y r	   rK   r6   s     r   rE   zClass2.testN   s	    r   c                      y r	   r'   r   s    r   r=   zClass2.methodR   s    r   c                 8    dt        | j                        z   dz   S )NzTest())strrE   r   s    r   __str__zClass2.__str__U   s    TYY'#--r   c                      y)r@   z<Class2 instance>r'   r   s    r   rA   zClass2.__repr__X   s    "r   )r"   r$   r%   rB   r-   rC   r0   rL   rD   rE   setterr=   rR   rA   r'   r   r   rG   rG   A   sf        F 	[[ .#r   rG   c                 "    | |z   }| |z  }|r|S |S r	   r'   )xyzabs        r   rE   rE   ]   s     	AA	AA((r   c                   x     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
 ej                  d	      d
        Z xZS )TestTracingc                 &    t        t        | 
  |  y r	   )superr\   r   )r   r;   	__class__s     r   r   zTestTracing.__init__f   s    k4)40r   c                 "    t               | _        y r	   )r   capturer   s    r   setUpzTestTracing.setUpi   s    $r   c                     | ` y r	   )ra   r   s    r   tearDownzTestTracing.tearDownl   s    Lr   c                     | j                   5  t               j                  dd       d d d        | j                  | j                   j	                         d       y # 1 sw Y   4xY w)Nfoobaz)barz]>> Class.method(self=<Class instance>, some='foo', other='value', bar='baz')
<< Class.method
)ra   r)   r=   assertEqualr    r   s    r   test_methodzTestTracing.test_methodo   sJ    \\GNN5eN, ..0-	. \s   AA%c                     | j                   5  t        j                          d d d        | j                  | j                   j	                         d       y # 1 sw Y   4xY w)NzA>> Class.class_method(cls=<class 'Class'>)
<< Class.class_method
)ra   r)   r-   ri   r    r   s    r   test_class_methodzTestTracing.test_class_methodw   sD    \\  ..03	4 \   AAc                     | j                   5  t        j                          d d d        | j                  | j                   j	                         d       y # 1 sw Y   4xY w)Nz$>> static_method()
<< static_method
)ra   r)   r0   ri   r    r   s    r   test_static_methodzTestTracing.test_static_method   sD    \\! ..0.	/ \rm   c                     | j                   5  t               }d|_        d|j                  k(  sJ 	 d d d        | j                  | j                   j	                         d       y # 1 sw Y   4xY w)N   z>> Class._test_set(self=<Class instance>, value=1)
<< Class._test_set
>> Class._test_get(self=<Class instance>)
<< Class._test_get -> 1
)ra   r)   rE   ri   r    r   rE   s     r   test_propertyzTestTracing.test_property   sX    \\7DDI		>!>  	..05	6	 \s   #A$$A-c                     | j                   5  t        dd       t        ddd       d d d        | j                  | j                   j                         d       y # 1 sw Y   4xY w)N   FzQ>> test(x=5, y=5, z=True)
<< test -> 10
>> test(x=5, y=5, z=False)
<< test -> 25
)ra   rE   ri   r    r   s    r   test_functionzTestTracing.test_function   sO    \\AJAu  	..0+	, \s   AA#z(recursive decoration not yet implementedc                    | j                   5  t        j                  t        d       t        j	                          t        j                          t               }d|_        d|j                  k(  sJ |j                          | j                  | j                   j                         d       d d d        y # 1 sw Y   y xY w)NT)	recursiverq   zg>> Class2.class_method(cls=<type 'Class2'>)
<< Class2.class_method
>> static_method()
<< static_method
)
ra   r   r   rG   r-   r0   rE   r=   ri   r    rr   s     r   test_injectedzTestTracing.test_injected   s     \\MM&D1!  "8DDI		>!>KKMT\\224./ \\s   B B66B?)r"   r$   r%   r   rb   rd   rj   rl   ro   rs   rv   unittestskipry   __classcell__)r_   s   @r   r\   r\   d   sK    1'.4/
6	, X]]=>/ ?/r   r\   __main__)T)ior   r   rz   
numba.corer   	getLoggerr   setLevelINFOr   
orig_tracedotracer   objectr)   rG   rE   TestCaser\   r"   mainr'   r   r   <module>r      s       			7	#   ]]
 *"F "<#V #8 	 K/(## K/^ zHMMO r   