
    yj                    4   U d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
mZ ddlmZ eeee         df         Zded	<   d0dZ G d d          Z G d d          Ze		 d1ddddd2d            Ze	ddddd3d!            Z	 d1ddddd4d$Z	 d1ddd%d&d5d/ZdS )6    )annotationsN)CallableIterableSequence)Unionoverload)	TypeAlias   )PYTHON_OP_REGISTRYr	   _DeviceTypesfeaturestrfn_namereturnNonec                L    t          j        d|  d| dt          d           d S )NzThe feature 'z' in function 'zA' is not implemented in PaddlePaddle's custom operator interface.   )
stacklevel)warningswarnUserWarning)r   r   s     ^/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddle/library.py'warn_about_unimplemented_torch_featuresr       sA    Mzzzzzz         c                      e Zd ZdS )TagN)__name__
__module____qualname__ r   r   r   r   (   s          r   r   c                  B    e Zd Z	 dddZedd            ZddZddZdS )CustomOpDefN	namespacer   nameschemafnr   tagsSequence[Tag] | Noner   r   c                T    || _         || _        || _        || _        ||ng | _        d S N)
_namespace_name_schema_fn_tags)selfr#   r$   r%   r&   r'   s         r   __init__zCustomOpDef.__init__,   s4     $
!-TT2


r   c                $    | j          d| j         S )N::)r+   r,   r0   s    r   	_qualnamezCustomOpDef._qualname:   s    /11TZ111r   c                    d| j          dS )Nz<CustomOpDef(z)>)r5   r4   s    r   __repr__zCustomOpDef.__repr__>   s    1t~1111r   Callable[..., object]c               &    t          dd           |S )Nregister_fakeztorch.library.CustomOpDefr   )r0   r&   s     r   r:   zCustomOpDef.register_fakeA   s#     	08	
 	
 	
 	r   r*   )r#   r   r$   r   r%   r   r&   r   r'   r(   r   r   )r   r   )r&   r8   r   r8   )r   r   r   r1   propertyr5   r7   r:   r    r   r   r"   r"   +   sz         &*6 6 6 6 6 2 2 2 X22 2 2 2     r   r"   )device_typesr%   r'   r$   r&   mutates_argsstr | Iterable[str]r=   r%   
str | Noner'   r(   .Callable[[Callable[..., object]], CustomOpDef]c                  d S r*   r    r$   r&   r>   r=   r%   r'   s         r   	custom_oprD   J   s	     69Sr   r8   c                  d S r*   r    rC   s         r   rD   rD   W   s	     #r   Callable[..., object] | None<Callable[[Callable[..., object]], CustomOpDef] | CustomOpDefc                   |rt          dd           rt          dd           rt          dd           d v s
J d                                 dd          \  d fd}||S  ||          S )Nr=   ztorch.library.custom_opr%   r'   r3   zZThe custom operator name should be qualified with a namespace, like 'my_namespace::my_op'.r
   r&   r8   r   r"   c                ^    t          j        |            t          nd|           S )N )r#   r$   r%   r&   r'   )r   registerr"   )r&   r$   r#   op_namer%   r'   s    r   innerzcustom_op.<locals>.inner   sE    #D"---#/66R
 
 
 	
r   )r&   r8   r   r"   )r   split)	r$   r&   r>   r=   r%   r'   rM   r#   rL   s	   `   `` @@r   rD   rD   d   s      
/5	
 	
 	
  
//	
 	
 	
  
/-	
 	
 	
 4<<<	& << D!,,Iw
 
 
 
 
 
 
 
 
 
 
z599r   F)lib_stacklevelallow_overrideopstr | CustomOpDeffuncrO   rP   intrQ   boolc              F    t          dd           d }||S  ||          S )Nr:   ztorch.library.register_fakec                    | S r*   r    )rT   s    r   rK   zregister_fake.<locals>.register   s    r   r;   )rR   rT   rO   rP   rQ   rK   s         r   r:   r:      sE     ,6     |x~~r   )r   r   r   r   r   r   r*   )r$   r   r&   r   r>   r?   r=   r   r%   r@   r'   r(   r   rA   )r$   r   r&   r8   r>   r?   r=   r   r%   r@   r'   r(   r   r"   )r$   r   r&   rF   r>   r?   r=   r   r%   r@   r'   r(   r   rG   )
rR   rS   rT   rF   rO   r   rP   rU   rQ   rV   )
__future__r   r   collections.abcr   r   r   typingr   r   typing_extensionsr	   _opsr   r   r   __annotations__r   r   r"   rD   r:   r    r   r   <module>r_      s  & # " " " " " "  8 8 8 8 8 8 8 8 8 8 " " " " " " " " ' ' ' ' ' ' $ $ $ $ $ $Xc]D 89 9 9 9 9           > 
 	9 "&!%	9 	9 	9 	9 	9 
	9 
 "&!%	 	 	 	 	 
	 (,) "&!%) ) ) ) ) )\ *.
         r   