o
    * i	                     @  s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ ddlmZ e
d	Zed
ZG dd dZedddZ	ddddZdS )    )annotations)contextmanagerwraps)CallableTypeVar)	ParamSpec)core   )ENV_SOT_EVENT_LEVELPTc                   @  s.   e Zd Zdd Zdd Zd
ddZdd	 ZdS )SotProfilerc                 C     |    d S N)enableself r   _/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddle/jit/profiler.py	__enter__       zSotProfiler.__enter__c                 C  r   r   )disable)r   exc_typeexc_valexc_tbr   r   r   __exit__#   r   zSotProfiler.__exit__Nc                 C  s   t   t   d S r   )r	   Znvprof_startZnvprof_enable_record_event)r   tagr   r   r   r   &   s   zSotProfiler.enablec                 C  s   t   d S r   )r	   Znvprof_stopr   r   r   r   r   *   r   zSotProfiler.disabler   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    
r   c                 c  sN    d}zt  |krt|  d}d V  W |rt  d S d S |r&t  w w )NFT)r   getr	   Znvprof_nvtx_pushZnvprof_nvtx_pop)
event_nameevent_levelZneed_popr   r   r   
EventGuard.   s   

r$   event_name_formatterCallable[P, str] | strreturn*Callable[[Callable[P, T]], Callable[P, T]]c                   s.   d fdd}ddd}t   kr|S |S )	NfuncCallable[P, T]r'   c                   s   t  d fdd}|S )NargsP.argskwargsP.kwargsc                    sX   t r| i |n}t| d | i |W  d    S 1 s%w   Y  d S )N)r#   )callabler$   )r+   r-   r"   )r#   r%   r)   r   r   call_with_event?   s   $z>event_register.<locals>.event_wrapper.<locals>.call_with_event)r+   r,   r-   r.   r   )r)   r0   r#   r%   r)   r   event_wrapper>   s   	z%event_register.<locals>.event_wrapperc                 S  s   | S r   r   r2   r   r   r   
do_nothingK   s   z"event_register.<locals>.do_nothing)r)   r*   r'   r*   )r   r!   )r%   r#   r3   r4   r   r1   r   event_register;   s
   
r5   N)r
   )r%   r&   r'   r(   )
__future__r   
contextlibr   	functoolsr   typingr   r   Ztyping_extensionsr   Zpaddle.frameworkr	   Zdy2static.utilsr   r   r   r   r$   r5   r   r   r   r   <module>   s   