o
    pi8                     @   sf   d dl mZ d dlmZ d dlmZmZ d dlmZ g Z	dd Z
dd Zd	d
 Zdd ZdddZdS )   )core)global_scope)default_main_programdefault_startup_program)generatec                    s.   fdd  fdd}|_ d_d_S )Nc                     s   t  } |  j}| S N)r   Zfind_varnameZ
get_reader)scopevar)reader \/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/paddle/base/layers/io.py__get_reader__   s   z3monkey_patch_reader_methods.<locals>.__get_reader__c                      s
       S r   )resetr   )r   r   r   r      s   
z*monkey_patch_reader_methods.<locals>.resetT)r   Zstop_gradientpersistable)r   r   r   )r   r   r   monkey_patch_reader_methods   s   r   c                 C   sV   | j |jtjjjd}|j|j  |j	|j
  |j|j  d|_|S )N)r   typeT)
create_varr   r   ZVarDescZVarTypeZREADERZdescZ
set_shapesZshapesZ
set_dtypesZdtypesZset_lod_levelsZ
lod_levelsr   )blockr
   Znew_varr   r   r   _copy_reader_var_&   s   r   c           
      C   s   |j }i }|D ]}g ||< ||}|D ]}|| | | qq|j}i }|D ]}g ||< ||}|D ]}|| | | q6q)| j|j||| d}	|	S )Nr   ZinputsZoutputsattrs)	Zinput_namesinputappendr
   Zoutput_namesoutput	append_opr   Z	all_attrs)
r   opZinput_param_namesZnew_input_map
param_name	arg_namesZarg_nameZoutput_param_namesZnew_output_mapZnew_opr   r   r   _copy_reader_create_op_/   s.   

r   c           	      C   sf   t | }t  }|j|d}|j| d|id|gi|d}d|_t  }t||}t|| t	|S )Nr   UnderlyingReaderOutr   T)
unique_namer   current_blockr   r   r   r   r   r   r   )	op_typer   r   var_nameZstartup_blkZstartup_varZ
startup_opZmain_prog_blockZmain_prog_varr   r   r   "__create_shared_decorated_reader__I   s   



r'   Nc                 C   sN   |d ur|nt | }t  }|j|d}|j| d|id|gi|d t|S )Nr    r!   r"   r   )r#   r   r$   r   r   r   )r%   r   r   r   Znew_reader_nameZmain_blkZ
new_readerr   r   r   $__create_unshared_decorated_reader__Z   s   
r(   r   ) r   executorr   Z	frameworkr   r   r#   r   __all__r   r   r   r'   r(   r   r   r   r   <module>   s   	