o
     j                     @   s.   d dl mZ d dlZG dd dZdd ZdS )    wrapsNc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )IrGuardc                 C   s   d| _ tjjd}tjjddi dtjjj_tjjdd s7tjj	| _
tjj| _tjj| _tjj| _ntdtjj| |d tjjj_d S )NFFLAGS_enable_pir_apizxIrGuard only init when paddle.framework.in_pir_mode(): is false,                 please set FLAGS_enable_pir_api = false)in_dygraph_outsidepaddlebase	framework	get_flags	set_flags
global_var_use_pir_api_staticProgramold_Programprogram_guardold_program_guarddefault_main_programold_default_main_programdefault_startup_programold_default_startup_programRuntimeError)selfZold_flag r   Q/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/pir_utils.py__init__   s&   


zIrGuard.__init__c                 C   sD   t jj | _| jrt   t jddi dt jjj_| 	  d S )Nr   T)
r   r   r	   Zin_dygraph_moder   Zenable_staticr   r   r   _switch_to_pirr   r   r   r   	__enter__.   s   zIrGuard.__enter__c                 C   s:   t jddi dt jjj_|   | jrt   d S d S )Nr   F)	r   r	   r   r   r   r   _switch_to_old_irr   Zdisable_static)r   exc_typeexc_valexc_tbr   r   r   __exit__6   s   zIrGuard.__exit__c                 C   s   t jjdd r@t jddi t j  t jjt j_t jjj	t j_	t jjt j
_t jjj	t j
_	t jjjt j
_t jjjt j
_d S d S )Nr   FLAGS_enable_pir_in_executorT)r   r   r	   r
   r   ZpirZregister_paddle_dialectr   corer   r   r   r   r   r   r   r   r   =   s   

zIrGuard._switch_to_pirc                 C   sj   t jjdd s1t jddi | jt j_| jt j_| jt j	_| jt j	_| j
t j	_| jt j	_d S td)Nr   r$   FzIrGuard._switch_to_old_ir only work when paddle.framework.in_pir_mode() is false,                 please set FLAGS_enable_pir_api = false)r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   U   s   





zIrGuard._switch_to_old_irN)__name__
__module____qualname__r   r   r#   r   r   r   r   r   r   r      s    r   c                    s   t   fdd}|S )Nc                     sH    | i | t    | i | W d    d S 1 sw   Y  d S )N)r   )argskwargsfuncr   r   implo   s   "ztest_with_pir_api.<locals>.implr   )r,   r-   r   r+   r   test_with_pir_apin   s   r.   )	functoolsr   r   r   r.   r   r   r   r   <module>   s   Y