
    yj7                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZmZmZmZ d dlmZ d dlZ ed          Z ed          ZdZ eed	          o eed
          Zej        d             ZddZddZ G d d          Z e            Z G d deeef                   Z G d dej                  Z G d dej                  Z  e             Z!dS )    )annotationsN)cached_property)AnyCallableGenericTypeVar)	ParamSpec_InputT_RetTz
paddle.opsgetdlopenflagssetdlopenflagsc               #     K   t           sdV  dS t          j                    } t          j        | t          j        z             	 dV  t          j        |            dS # t          j        |            w xY w)z
    Context manager to set the RTLD_GLOBAL dynamic linker flag while we open a
    shared library to load custom operators.
    N)_SET_GLOBAL_FLAGSsysr   r   ctypesRTLD_GLOBAL)	old_flagss    [/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddle/_ops.pydl_open_guardr   -   s        "$$Iy6#55666&9%%%%%9%%%%s   A A5modulestrc                *    t          j        |           S N)	importlibimport_module)r   s    r   r   r   >   s    "6***    pathc                    t           j                            |           } t                      5  t	          j        |            ddd           dS # 1 swxY w Y   dS )z6
    Load a shared library at the specified path.
    N)osr   realpathr   r   CDLL)r   s    r   load_libraryr"   B   s     7D!!D	  D                 s   AAAc                  ,    e Zd Zd ZddZdd	Zdd
ZdS )PythonOpRegistryc                    i | _         d S r   	_registryselfs    r   __init__zPythonOpRegistry.__init__L   s    ;=r   namer   fnCallable[..., object]c                R    || j         v rt          d| d          || j         |<   d S )N
Operator 'z' is already registered.r'   
ValueError)r)   r+   r,   s      r   registerzPythonOpRegistry.registerO   s;    4>!!H$HHHIII!tr   returnboolc                    || j         v S r   r&   r)   r+   s     r   has_operatorzPythonOpRegistry.has_operatorT   s    t~%%r   c                T    || j         vrt          d| d          | j         |         S )Nr/   z' is not registered.r0   r6   s     r   get_operatorzPythonOpRegistry.get_operatorW   s6    t~%%D$DDDEEE~d##r   N)r+   r   r,   r-   )r+   r   r3   r4   )r+   r   r3   r-   )__name__
__module____qualname__r*   r2   r7   r9    r   r   r$   r$   K   s_        > > >" " " "
& & & &$ $ $ $ $ $r   r$   c                  >    e Zd ZddZedd            ZddZddZdS )OverloadedOpFunction	namespacer   r+   c                "    || _         || _        d S r   )r@   r+   )r)   r@   r+   s      r   r*   zOverloadedOpFunction.__init__a   s    "			r   r3   Callable[_InputT, _RetT]c                   t                               | j         d| j                   r)t                               | j         d| j                   S t
          j        j        j        	                    | j         d| j                   S )Nz::)
PYTHON_OP_REGISTRYr7   r@   r+   r9   paddlebasecoretorch_compat_get_operationr(   s    r   callable_fnz OverloadedOpFunction.callable_fne   s    **dn+K+K	+K+KLL 	%22>00TY00   {,;;~,,,,
 
 	
r   c           	     b    |dk    r| j         S t          d| j         d| j         d| d          )Ndefault'.z' has no attribute ')rJ   AttributeErrorr@   r+   r6   s     r   __getattr__z OverloadedOpFunction.__getattr__o   sJ    9##GGGGGGGG
 
 	
r   args_InputT.argskwargs_InputT.kwargsr   c                     | j         |i |S r   )rJ   )r)   rQ   rS   s      r   __call__zOverloadedOpFunction.__call__v   s    t0000r   N)r@   r   r+   r   )r3   rB   )r+   r   r3   rB   )rQ   rR   rS   rT   r3   r   )r:   r;   r<   r*   r   rJ   rP   rV   r=   r   r   r?   r?   `   sp            
 
 
 _

 
 
 
1 1 1 1 1 1r   r?   c                  &     e Zd Z fdZddZ xZS )OpNameSpacec                l    t                                          t           d|            || _        d S )NrN   )superr*   PADDLE_OPS_MODULE_NAMEr+   )r)   r+   	__class__s     r   r*   zOpNameSpace.__init__{   s5    2;;T;;<<<			r   r+   r   r3   OverloadedOpFunction[..., Any]c                F    |dk    rt           S t          | j        |          S )N__file__)r[   r?   r+   r6   s     r   rP   zOpNameSpace.__getattr__   s%    :))#DIt444r   )r+   r   r3   r]   )r:   r;   r<   r*   rP   __classcell__r\   s   @r   rX   rX   z   sL            5 5 5 5 5 5 5 5r   rX   c                  6     e Zd ZdZ fdZddZd Zd Z xZS )	PaddleOpsModulez_ops.pyc                T    t                                          t                     d S r   )rZ   r*   r[   )r)   r\   s    r   r*   zPaddleOpsModule.__init__   s"    /00000r   r+   r   c                F    t          |          }t          | ||           |S r   )rX   setattr)r)   r+   r@   s      r   rP   zPaddleOpsModule.__getattr__   s'    %%	dI&&&r   c                     t          |          S r   )r   )r)   r   s     r   r   zPaddleOpsModule.import_module   s    V$$$r   c                     t          |          S r   )r"   )r)   r   s     r   r"   zPaddleOpsModule.load_library   s    D!!!r   )r+   r   )	r:   r;   r<   r_   r*   rP   r   r"   r`   ra   s   @r   rc   rc      so        H1 1 1 1 1   % % %" " " " " " "r   rc   )r   r   )r   r   )"
__future__r   
contextlibr   r   r   r   types	functoolsr   typingr   r   r   r   typing_extensionsr	   rE   r
   r   r[   hasattrr   contextmanagerr   r   r"   r$   rD   r?   
ModuleTyperX   rc   opsr=   r   r   <module>rs      s  & # " " " " "          				 



  % % % % % % 2 2 2 2 2 2 2 2 2 2 2 2 ' ' ' ' ' ' 
)I

%  GC!122 ww	8 8 
 & & & + + + +   $ $ $ $ $ $ $ $$ &%'' 1 1 1 1 177E>2 1 1 145 5 5 5 5%" 5 5 5" " " " "e& " " "& or   