
    |jc#                       U d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZmZ d dlmZ d dlZd dlmZ ej        ej        z  Zded	<    ed
          Z ed          Z G d d          Zd*dZd+dZd,dZd Zd Zd Z eddddddd-d$            Z!e	 d.ddddddd/d'            Z!	 d.ddddddd0d)Z!dS )1    )annotationsN)MappingSequence)partialwraps)AnyCallableTypeVaroverload)	ParamSpec)_C_opsintHAS_VAR_ARGS_OR_KWARGSP1R1c                      e Zd ZddZd ZdS )	MissingArgumentfnCallable[P1, R1]namestrc                "    || _         || _        d S N)r   r   )selfr   r   s      g/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddle/static/python_op.py__init__zMissingArgument.__init__%   s    			    c                2    d| j          d| j        j         dS )Nz<Required parameter 'z' for function >)r   r   __name__)r   s    r   __repr__zMissingArgument.__repr__)   s"    TtyTTAQTTTTr   N)r   r   r   r   )r    
__module____qualname__r   r!    r   r   r   r   $   s<           U U U U Ur   r   r   r   	parameterinspect.Parameterc                    |j         t          j        j        u rdS |j         t          j        j        u ri S |j        t          j        j        u rt          | |j                  S |j        S )Nr$   )	kindinspect	ParameterVAR_POSITIONALVAR_KEYWORDdefaultemptyr   r   )r   r%   s     r   extract_defaultr/   -   sa    ~*999r	7,8	8	8			g/5	5	5r9>222r   returntuplec                      fdt          j                   j                                        D             }t	          |          D ]&\  }}t          |t                    s||d          } n't          |          S )Nc                0    g | ]}t          |          S r$   )r/   ).0paramr   s     r   
<listcomp>z*get_fn_defaults_params.<locals>.<listcomp>8   s3        	E""  r   )r)   	signature
parametersvalues	enumerate
isinstancer   r1   )r   fn_defaults_paramsir-   s   `   r   get_fn_defaults_paramsr>   7   s       &r**5<<>>     233  
7'?33 	!3ABB!7E	 #$$$r   c                   t          | t          j                  s
J d            | j        }|j        t
           z  }|j        |j        z   t          |j        t          j
        z            z   t          |j        t          j        z            z   }t          j        dk    rlt          j        |dd|j        |j        ||j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j        |j                  }nvt          j        |dd|j        |j        ||j        |j        |j        |j        |j        |j        |j        t          j        dk    r|j        n|j        |j        |j                  }t=          |           }t          j        || j        | j         || j!                  }| j         |_         | j"        |_"        | j#        |_#        d |_$        |S )NzOnly support regular function)      r   )r@   
   )%r;   typesFunctionType__code__co_flagsr   co_argcountco_kwonlyargcountboolr)   
CO_VARARGSCO_VARKEYWORDSsysversion_infoCodeType
co_nlocalsco_stacksizeco_code	co_constsco_namesco_varnamesco_filenameco_nameco_qualnameco_firstlinenoco_linetableco_exceptiontableco_freevarsco_cellvars	co_lnotabr>   __globals__r    __closure____doc____annotations____kwdefaults__)r   coderF   argcountnew_coder<   new_fns          r   $eliminate_positional_or_keyword_onlyrg   C   s    b%,--NN/NNN-;DM%;$;;H 	

 	!
t}w11
2
2	3 t}w55
6
6	7  7"">OLNML"%
 
* >OLNML7** %
 
* 033


 F kFOZFN/F FMr   c                    t          j        |           } |j        |i |}|                                 |j        }i }i }|                                D ]/\  }	}
t          |
t          j        j	                  r|
||	<   *|
||	<   0t          |                                          }t          |           } t          |          }|t          | fi |t          |fi |t          |                                          |fS r   )r)   r7   bindapply_defaults	argumentsitemsr;   paddlepirValuelistkeysrg   r   r9   )r   
infer_metaargskwargssig
bound_argsparamsmutable_paramsconst_paramskvmutable_arg_namess               r   bind_constantsr}      s   

B

C4*6**J!FNL    1a)** 	  !N1LOO^002233	-b	1	1B5jAAJ##l##
++l++^""$$%% r   c                      fd}|S )Nc                     t           j        j        j                                        5   | i |cd d d            S # 1 swxY w Y   d S r   )rm   basedygraphguard)rs   rt   r   s     r   dynamic_mode_fnz,run_in_dynamic_mode.<locals>.dynamic_mode_fn   s    [ %++-- 	' 	'2t&v&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   ?AAr$   )r   r   s   ` r   run_in_dynamic_moder      s$    ' ' ' ' ' r   c                   t          | t          t          t          t          t
          f          rt          |           S t          | t          t          f          r 	 t          |           S # t          $ r Y nw xY wt          | t          t          f          r;	 t          dgt          d | D                       R           S # t          $ r Y nw xY wt          | t                    r\	 t          t          d |                                 D                                 }t          dg|R           S # t          $ r Y nw xY w	 t          |           S # t          $ r t          |           cY S w xY w)Nr   c              3  4   K   | ]}t          |          V  d S r   custom_hash)r4   items     r   	<genexpr>zcustom_hash.<locals>.<genexpr>   s*      "E"E;t#4#4"E"E"E"E"E"Er   c              3  X   K   | ]%\  }}t          |          t          |          fV  &d S r   r   )r4   rz   r{   s      r   r   zcustom_hash.<locals>.<genexpr>   s7      PPDAqAA7PPPPPPr      )r;   r   floatr   rI   byteshashr1   	frozenset	TypeErrorr   setr   sortedrl   id)objitems_hasheds     r   r   r      s    #UCu566 Cyy #y)** 	99 	 	 	D	 ##'' 	FU"E"E"E"E"EEEFFGGG 	 	 	D	 #w 	 PPCIIKKPPPPP L *\**+++ 	 	 	D	Cyy   #wwsI   A* *
A76A7)C 
CC'A
D2 2
D?>D?E E.-E.)r   rr   input_namesoutput_namesinplace_mapr   
str | Nonerr   Callable[..., Any] | Noner   list[str] | Noner   r   dict[str, str] | Nonec                  d S r   r$   r   r   rr   r   r   r   s         r   register_opr      s	     sr   None.Callable[[Callable[P1, R1]], Callable[P1, R1]]c                  d S r   r$   r   s         r   r   r      s	     69Sr   Callable[P1, R1] | Nonec                  t          d          t          d          t          d          dfd}| |S  ||           S )	Nz(Currently, input_names must be provided.z)Currently, output_names must be provided.z'Currently, infer_meta must be provided.real_fnr   r0   c           	          p j         t          j        j        j        t                     d fd                        }|S )	Nrs   P1.argsrt   	P1.kwargsr0   r   c            
        t          j                    r | i |S t          	g| R i |\  }}}}}t          |          t                    k    s+J dt          |           dt                     d            t	          |          }t          j        | d| |t          |          d
pi d}t                    dk    r|d         n|S )	NzNumber of mutable arguments (z,) does not match the number of input names (z)._)infer_meta_fn_ptrfn_ptr)r   r   r   attrsr   r   r   )rm   in_dynamic_moder}   lenr   r   _run_python_opr   )rs   rt   r|   bound_constants_fnbound_constants_infer_metamutable_argsry   const_params_hashoutrr   r   r   op_namer   r   s            r   
wrapped_fnz5register_op.<locals>._register_op.<locals>.wrapped_fn  sI    %'' 0w//// w
DTDDDVDD!"*())S-=-====C4E0F0F C C.1+.>.>C C C >==
 !,L 9 9'55"355'))C12DEE  (-2
 
 
C !..!333q66<r   )rs   r   rt   r   r0   r   )r    rm   jitmarkerunifiedr   )r   r   r   rr   r   r   r   r   s   ` @r   _register_opz!register_op.<locals>._register_op   sw     *'*			"	w	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 
 
#	"	=@ r   )r   r   r0   r   )
ValueError)r   r   rr   r   r   r   r   s    ````` r   r   r      s     CDDDDEEEBCCC' ' ' ' ' ' ' ' ' 'T 
z<r   )r   r   r%   r&   )r   r   r0   r1   )r   r   r0   r   )r   r   r   r   rr   r   r   r   r   r   r   r   r0   r   r   )r   r   r   r   rr   r   r   r   r   r   r   r   r0   r   )r   r   r   r   rr   r   r   r   r   r   r   r   )"
__future__r   r)   rL   rC   collections.abcr   r   	functoolsr   r   typingr   r	   r
   r   typing_extensionsr   rm   r   rJ   rK   r   ra   r   r   r   r/   r>   rg   r}   r   r   r   r$   r   r   <module>r      sQ   # " " " " " "  



  - - - - - - - - $ $ $ $ $ $ $ $ 3 3 3 3 3 3 3 3 3 3 3 3 ' ' ' ' ' '       %073II  I I I I Yt__WT]]U U U U U U U U   	% 	% 	% 	%D D D DN  6  % % %P 

 ,0$(%))-	 	 	 	 	 
	 
	9 ,0$(%))-	9 	9 	9 	9 	9 
	9 #'> ,0$(%))-> > > > > > > >r   