
    J/Ph                     ~   d dl mZ d dlZd dlZd dlmZ  ej        d          Ze                    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                     dS dS )    )StringION)tracingtracec                   *    e Zd ZdZd Zd Zd Zd ZdS )CapturedTracez-Capture the trace temporarily for validation.c                 h    t                      | _        t          j        | j                  | _        d S N)r   bufferloggingStreamHandlerhandlerselfs    X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_tracing.py__init__zCapturedTrace.__init__   s%    jj,T[99    c                     t           j        | _        t                      | _        t          j        | j                  gt           _        d S r	   )loggerhandlers	_handlersr   r
   r   r   r   s    r   	__enter__zCapturedTrace.__enter__   s1    jj"0==>r   c                 (    | j         t          _        d S r	   )r   r   r   )r   typevalue	tracebacks       r   __exit__zCapturedTrace.__exit__   s    .r   c                 t    | j                                         }|                    t          dz   d          }|S )N. )r
   getvaluereplace__name__)r   logs     r   r    zCapturedTrace.getvalue   s3    
 k""$$kk(S.,,
r   N)r"   
__module____qualname____doc__r   r   r   r     r   r   r   r      sV        7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dS )
Classc                     d S r	   r'   clss    r   class_methodzClass.class_method%   	     	r   c                      d S 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                     || _         d S r	   r2   r   r   s     r   	_test_setzClass._test_set4   s    r   r   c                     d S r	   r'   )r   someotherargskwdss        r   methodzClass.method9       r   c                     dS ),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788D]   ]" " " " "r   r)   c                       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dS )	Class2c                     d S r	   r'   r+   s    r   r-   zClass2.class_methodB   r>   r   c                      d S 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                     || _         d S r	   rK   r6   s     r   rE   zClass2.testN   s    r   c                     d S r	   r'   r   s    r   r=   zClass2.methodR   s    r   c                 6    dt          | j                  z   dz   S )NzTest())strrE   r   s    r   __str__zClass2.__str__U   s    TY'#--r   c                     dS )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   s          [   \ F  X	[  [  . . .# # # # #r   rG   Tc                 "    | |z   }| |z  }|r|S |S r	   r'   )xyzabs        r   rE   rE   ]   s%    	AA	AA ((r   c                   z     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                 B     t          t          |           j        |  d S r	   )superr\   r   )r   r;   	__class__s     r   r   zTestTracing.__init__f   s#    )k4  )40000r   c                 ,    t                      | _        d S r	   )r   capturer   s    r   setUpzTestTracing.setUpi   s    $r   c                 
    | ` d S r	   )ra   r   s    r   tearDownzTestTracing.tearDownl   s    LLLr   c                     | j         5  t                                          dd           d d d            n# 1 swxY w Y   |                     | j                                         d           d S )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   s    \ 	- 	-GGNN5eN,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-..00-	. 	. 	. 	. 	.s   $8<<c                     | j         5  t                                           d d d            n# 1 swxY w Y   |                     | j                                         d           d S )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   s    \ 	! 	!   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!..003	4 	4 	4 	4 	4   .22c                     | j         5  t                                           d d d            n# 1 swxY w Y   |                     | j                                         d           d S )Nz$>> static_method()
<< static_method
)ra   r)   r0   ri   r    r   s    r   test_static_methodzTestTracing.test_static_method   s    \ 	" 	"!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"..00.	/ 	/ 	/ 	/ 	/rm   c                     | j         5  t                      }d|_        d|j        k    sJ 	 d d d            n# 1 swxY w Y   |                     | j                                         d           d S )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   s    \ 	" 	"77DDI	>>>>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	..005	6 	6 	6 	6 	6s   #8<<c                     | j         5  t          dd           t          ddd           d d d            n# 1 swxY w Y   |                     | j                                         d           d S )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   s    \ 	 	AJJJAu	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	..00+	, 	, 	, 	, 	,s   "6::z(recursive decoration not yet implementedc                    | j         5  t          j        t          d           t                                           t                                           t                      }d|_        d|j        k    sJ |                                 |                     | j         	                                d           d d d            d S # 1 swxY w Y   d S )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    \ 	/ 	/M&D1111!!!  """88DDI	>>>>KKMMMT\2244./ / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   B1CC
C
)r"   r$   r%   r   rb   rd   rj   rl   ro   rs   rv   unittestskipry   __classcell__)r_   s   @r   r\   r\   d   s        1 1 1 1 1' ' '  . . .4 4 4/ / /
6 
6 
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      st                		7	#	#     ]
       *" " " " "F " " "<# # # # #V # # #8 	   K/ K/ K/ K/ K/(# K/ K/ K/^ zHMOOOOO r   