
    '}h                        d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ  ed       G d	 d
             Z ed       G d d             Z ed       G d de             Z ed       G d d             Z  ed       G d de              Z! ed       G d d             Z" ed       G d d             Z# ed       G d d             Z$ ed       G d d             Z% ed       G d d             Z&ddded e'd!efd"Z(ded!e'fd#Z)ddd$d%ed&e'd'e'd!e*fd(Z+d%ed!ee,   fd)Z-d*ed!efd+Z.ddd,ded e'd-e'd!e fd.Z/ddd,d/ed0ee*   d e'd-e'd!e f
d1Z0d2eed3f   d!ee*   fd4Z1d%ed!e*fd5Z2d%ed!e*fd6Z3d7e d!eee*e*f      fd8Z4d7e d!e*fd9Z5	 dPd:e ded'e'd!ee$d3f   fd;Z6h d<Z7ded!e*fd=Z8ded!e*fd>Z9d?d@dedAee    d!ee*d3f   fdBZ:ddCd%edDee*   dEee*   d'e'd!e*f
dFZ;ddCdGe,d*ed'e'd!e%fdHZ<ddCd:e ded'e'd!ee*e%f   fdIZ=dJdKdLdMdMdNZ>ddCd:e ded'e'd!e&fdOZ?y?)Q    )	dataclass)DictListOptionalSequenceSetTupleUnion)cpp)BindingCppSignatureCppSignatureGroup)pythonify_default)
ArgumentBaseTyBaseTypeFunctionSchemaListTypeNativeFunctionOptionalTypeReturnTypeVariantT)frozenc                   "    e Zd ZU eedf   ed<   y)PythonReturns.returnsN)__name__
__module____qualname__r	   r   __annotations__     R/var/www/html/test/engine/venv/lib/python3.12/site-packages/torchgen/api/python.pyr   r      s    63;r#   r   c                   z    e Zd ZU eed<   eed<   ee   ed<   ee   ed<   dddded	ed
efdZddddeded
efdZ	y)PythonArgumentnametypedefaultdefault_initFTmethodsymintr,   r-   returnc                0   t        | j                  |      j                  dd      j                  dd      }| j                  }|dk(  r|dv r|sd}| j                  4dddd	j                  | j                  | j                        }| d
| d| S | d
| S )Nr-   zconst  z &self)TensorNumberinputNone)nullptrc10::nullopt{} =)argument_type_strr(   replacer'   r)   get)r2   r,   r-   type_strr'   r)   s         r$   argument_strzPythonArgument.argument_str   s    dii7WXr"WT2 	 yy 6>h*>>vD <<#! & c$,,-	 
 Zqay11Zq''r#   r,   
deprecatedrB   c                   t        | j                        }| j                  }|dk(  r|dk(  r|s|sd}|dk(  r|dz  }|dk(  r|dk(  r
|sd|z   dz   }|xr! t        | t              xr | j
                  d	k(  }| j
                  |st        | j                  t              r|| j                  j                  t        t        j                        k(  rL| j
                  j                  d
      r1| j
                  j                  d      rd| j
                  dd z   dz   }n,d	d	d	dddj                  | j
                  | j
                        }| d| d| S | d| S )Nr2   r3   r5   from_out	Optional[]r6   {}(   )contiguous_formatper_tensor_affine)r7   r8   r9   zMemoryFormat::ContiguouszQScheme::PER_TENSOR_AFFINEz:  = )argument_type_str_pyir(   r'   
isinstancePythonOutArgumentr)   r   elemr   r   int
startswithendswithr>   )r2   r,   rB   r?   r'   treat_as_no_defaultr)   s          r$   argument_str_pyizPythonArgument.argument_str_pyi   s_    )3yy 6>h(26*D6>CKD 5=X1*"X-3H  '4!23'& 	 <<#,?499h/IINNhvzz&::LL++C0LL))#.Qr 22S8  &$* 0C2E #dllDLL1  V2hZs7)44V2hZ((r#   N)
r   r   r    strr!   r   r   boolr@   rZ   r"   r#   r$   r&   r&      sg    
I
Jc] 3- .34 (d (D (C (4 !&%-)-)37-)	-)r#   r&   c                   L    e Zd ZU eedf   ed<   edeedf   ded    fd       Zy)rT   .outputsr.   c                 >   | sy t        |       }|dk(  r*t        | d   j                  | d   j                  dd |       S |dkD  rQt	        d | D              rt        d|        t        dt        t        t        j                        |      dd |       S t        d      )	NrL   r   r6   )r'   r(   r)   r*   r^   c              3   R   K   | ]  }|j                   j                           ! y wNr(   is_tensor_like.0as     r$   	<genexpr>z1PythonOutArgument.from_outputs.<locals>.<genexpr>>  s      @1qvv,,..@s   %'zUnsupported output type: rF   z!Unexpected PythonOutArgument size)lenrT   r'   r(   anyRuntimeErrorr   r   r   r3   AssertionError)r^   sizes     r$   from_outputszPythonOutArgument.from_outputs-  s     7|19$QZ__QZ__!  AX@@@"%>wi#HII$hv}}5t<!  ABBr#   N)	r   r   r    r	   r&   r!   staticmethodr   rm   r"   r#   r$   rT   rT   $  sJ     >3&''C~s*+C	%	&C Cr#   rT   c            
       $   e Zd ZU eed<   eedf   ed<   eedf   ed<   ee   ed<   e	ed<   eedf   ed<   e
ed<   ed	e
fd
       Zdddde
de
d	eeeef   df   fdZd	efdZd	efdZdddde
de
d	efdZddde
d	efdZddde
d	ee   fdZy)PythonSignaturer'   .
input_argsinput_kwargsoutput_argsr   tensor_options_argsr,   r.   c                      y)NFr"   r2   s    r$   rB   zPythonSignature.deprecatedh  s    r#   F)skip_outputsskip_tensor_optionsrw   rx   c                   g }|j                  | j                         |j                  | j                         | j                  |s|j	                  | j                         |s|j                  | j
                         t        |      S ra   )extendrq   rr   rs   appendrt   tuple)r2   rw   rx   results       r$   	argumentszPythonSignature.argumentsl  sl     BDdoo&d''('MM$**+"MM$223V}r#   c                 4    t        | j                               S ra   )rh   r~   rv   s    r$   arguments_countzPythonSignature.arguments_countx  s    4>>#$$r#   c                 X    t        | j                        t        | j                        z   S ra   )rh   rq   rr   rv   s    r$   
output_idxzPythonSignature.output_idx{  s!    4??#c$*;*;&<<<r#   Trw   r-   r-   c                0   | j                  |      }|D cg c]  }|j                  | j                  |      ! }}t        | j                        }t        |      |kD  r|j                  |d       | j                   ddj                  |       dS c c}w )Nrw   r+   *rK   , rN   )r~   r@   r,   rh   rq   insertr'   join)r2   rw   r-   argsrf   schema_formalspositional_argcs          r$   signature_strzPythonSignature.signature_str  s    ~~<~8GK%
BCANN$++fN=%
 %
 doo.~0!!/37))Adii78::%
s   $Br   c                   | j                  |      }|D cg c]  }|j                  | j                          }}t        | j                        }t        |      |kD  r|j                  |d       t        |       }| j                  r|j                  dd       d| j                   ddj                  |       d	| d
S c c}w )Nr   r,   r   r   r2   def rK   r   ) -> : ...	r~   rZ   r,   rh   rq   r   returns_str_pyir'   r   r2   rw   r   rf   r   r   returns_strs          r$   signature_str_pyiz!PythonSignature.signature_str_pyi  s    ~~<~8<@%
78Adkk2%
 %
 doo.~0!!/37 &d+;;!!!V,dii[$))N";!<E+eTT%
s   #B?c                &   | j                  |      }|D cg c]  }|j                  | j                          }}| j                         }t	        | j
                        }d}|dkD  r=|d   j                  }t        |t              rt        |j                        dv r|dk(  rd}|sy d|d   j                  z   d	z   |d<   t        |       }	| j                  r|j                  dd
       d| j                   ddj                  |       d|	 dS c c}w )Nr   r   Fr   )rV   SymIntrL   Tr   z: _intr2   r   rK   r   r   r   )r~   rZ   r,   r   rh   rq   r(   rS   r   r[   rU   r'   r   r   r   )
r2   rw   r   rf   r   num_argsnum_positionalargshave_vararg_versionvararg_typer   s
             r$   signature_str_pyi_varargz(PythonSignature.signature_str_pyi_vararg  s   ~~<~8<@%
78Adkk2%
 %
 '') 1#a<q',,K;1(()->>&!+&*#"  $q',,.9q%d+;;!!!V,dii[$))N";!<E+eTT7%
s   #DN)r   r   r    r[   r!   r	   r&   r   rT   r   r\   propertyrB   r
   r~   rV   r   r   r   r   r   r"   r#   r$   rp   rp   K  s#    I nc)** +,,+,,  ~s233 LD   ',
#
BF
	u^%667<	=
% %=C = 5:$ 	;T 	;4 	;SV 	; 9> U U# U  @E U URU Ur#   rp   c                       e Zd ZU eed<   eedf   ed<   edefd       Z	dddd	ed
edefdZ
ddd	edefdZddd	edee   fdZy)PythonSignatureDeprecateddeprecated_schema.deprecated_args_exprsr.   c                      y)NTr"   rv   s    r$   rB   z$PythonSignatureDeprecated.deprecated      r#   FTr   rw   r-   c                8    t         j                  | ||      dz   S )Nr   z|deprecated)rp   r   )r2   rw   r-   s      r$   r   z'PythonSignatureDeprecated.signature_str  s+    ))< *  	
r#   r   c                N   | j                  |      }|D cg c]  }|j                  | j                  d      ! }}t        | j                        }t        |      |kD  r|j                  |d       t        |       }d| j                   ddj                  |       d| d	S c c}w )
Nr   TrA   r   r   rK   r   r   r   r   r   s          r$   r   z+PythonSignatureDeprecated.signature_str_pyi  s    ~~<~8MQ%
HIAdkkdC%
 %
 doo.~0!!/37%d+dii[$))N";!<E+eTT%
s   $B"c                     y ra   r"   )r2   rw   s     r$   r   z2PythonSignatureDeprecated.signature_str_pyi_vararg  r   r#   N)r   r   r    r   r!   r	   r[   r   r\   rB   r   r   r   r   r"   r#   r$   r   r     s     &% !c?*D   5:$ 
T 
4 
SV 
 9> 
U 
U# 
U @E  RU r#   r   c                   "    e Zd ZU eed<   eed<   y)!PythonSignatureNativeFunctionPair	signaturefunctionN)r   r   r    rp   r!   r   r"   r#   r$   r   r     s    r#   r   c                   V    e Zd ZU eed<   eed<   ee   ed<   ededee   dd fd       Z	y)	PythonSignatureGroupr   baseoutplace
functionalrF   r.   c                 :   |"t        |j                  |j                  d       S |j                  j                  j	                         }|j                  j
                  |d<   t         t        |j                        di ||j                  |j                        S )N)r   r   r   rt   r"   )r   r   r   __dict__copyrt   r(   )clsr   rF   signature_kwargss       r$   
from_pairszPythonSignatureGroup.from_pairs  s     ;'$..((  ==11668   44 	!	
 $)d3==)=,<=$$\\
 	
r#   N)
r   r   r    rp   r!   r   r   classmethodr   r   r"   r#   r$   r   r     sS    
   ~&&
5
 78
 
 	
 
r#   r   c                   ,    e Zd ZU eed<   eed<   eed<   y)DispatchLambdaArgumentr'   r?   
is_out_argN)r   r   r    r[   r!   r\   r"   r#   r$   r   r   2  s    
IMr#   r   c                   L    e Zd ZU eed<   eed<   eed<   eed<   edefd       Zy)PythonArgParserOutputExprr'   exprindexargumentr.   c                 "    d| j                    dS )Nz
_r.isNone(rN   )r   rv   s    r$   is_none_exprz&PythonArgParserOutputExpr.is_none_exprM  s    DJJ<q))r#   N)	r   r   r    r[   r!   rV   r&   r   r   r"   r#   r$   r   r   >  s8     I I J *c * *r#   r   c                   .    e Zd ZU ee   ed<   ee   ed<   y)DispatchLambdaArgumentExprsexprsinitsN)r   r   r    r   r[   r!   r"   r#   r$   r   r   W  s     C= C=r#   r   Fr   fr,   r.   c                D    t        j                  | |      j                  S )Nr   )r   from_native_functionr   )r   r,   s     r$   _cpp_signaturer   q  s    11!FCMMMr#   c                 F    | j                   j                  j                  d uS ra   )funcr~   tensor_options)r   s    r$   has_tensor_optionsr   u  s    66**$66r#   simple_typer-   tr   r-   c                J   t        | t              ro| j                  t        j                  k(  ry| j                  t        j
                  k(  ry| j                  t        j                  k(  ry| j                  t        j                  k(  ry| j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  fv r| j                  j                  S t        | t,              r6t        | j.                        dk(  ryt1        | j.                  ||      }| dS t        | t2              r6|s| j4                  nd }t        | j.                        dk(  r| j4                  J d	| j4                   d
S t        | j.                        dk(  r
|d| dS dS t        | j.                        dk(  r|r
|d| dS dS |d| dS dS t        | j.                        dk(  r
|d| dS dS t        | j.                        dk(  r
|d| dS dS t        | j.                        dk(  r|ryyt        | j.                        dk(  r
|d| dS dS t1        | j.                  ||      }d| d
S t7        dt9        |              )Nr3   int64_tdoublezc10::string_viewTensor?r   ?r\   z::std::array<bool,>rV   zIntArrayRef[rH   IntArrayRefr   zSymIntArrayRef[SymIntArrayRefzTensorList[
TensorListScalarzScalarList[
ScalarListz c10::List<c10::optional<Tensor>>z(const c10::List<c10::optional<Tensor>> &DimnamezDimnameList[DimnameListz	ArrayRef<unrecognized type )rS   r   r'   r   r3   rV   floatr[   r\   QSchemer   
ScalarType	GeneratorStorageLayoutDeviceDeviceIndexMemoryFormatr   StreamConstQuantizerPtrr   r   rU   r<   r   rl   rj   repr)r   r   r-   rU   rl   s        r$   r<   r<     s    !X66V]]"VVvzz!VVv||#VVvzz!%VVKKNNMMNNMMMMNNMM$$MM
 
" 66;;	A|	$qvv;(" [Pqz	Ax	 (qvvdqvv;& 66%%%'xq11[E!-1-=\$q)P=P[H$151AodV1-GW 261AdV1-T}T[H$,0,<[a(N,N[H$,0,<[a(N,N[I%9A[I%-1-=\$q)P=P [P4&""
+DG95
66r#   c                 p    | j                         }|$t        |j                        dk7  r|j                  S y )Nr\   )is_list_liker[   rU   rl   )r   ls     r$   argument_type_sizer     s.    	A}QVV.vvr#   rf   c                     t        | j                  | j                  | j                  Dt	        t        t        j                  | j                  | j                  d                  d       S d d       S )NFr0   r'   r(   r)   r*   )r&   r'   r(   r)   r[   r   r   default_expr)rf   s    r$   r   r     si    VVVV
 99  c..qyy!&&OP

 
 
 
 
r#   )r,   pyir   c                H    t        | j                  | j                  ||      S )N)category_overrider,   r   )signature_from_schemar   r   )r   r,   r   s      r$   r   r     s$     !	!"5"5f# r#   r   r   c          
      Z	    g }|j                   j                  j                         |sE j                  j                  /|j	                   j                  j                  j
                         |j                   j                  j                         |j                   j                  j                         |j                   j                  j                         |j                   j                  j                          j                  j                  D ch c]  }|j                   c} j                  j                  D ch c]  }|j                   c} j                  j                  D ch c]  }|j                   c}t        t        t
        t        fd|                  }t        t        t
        t        fd|                  }t        t        t
        t        fd|                  }t!        d  j                  j"                  D              }	t!        d  j%                         D              rt'        d      t!        d  j(                  D              }
t+        j                         }|dk(  xs |
xr |	 }|d	v xs$ |j-                  d
      xs |j/                  d      }|dk(  }g }|s|rt|sqdt0        dt2        t0           f fd}|j	                  t5        dt7        t9        t:        j<                              d|rd n |d                   |j	                  t5        dt7        t9        t:        j>                              d|rd n |d                   |j	                  t5        dt7        t9        t:        j@                              d|rd n |d      xs d             |j	                  t5        dt7        t9        t:        jB                              dd              |j	                  t5        dt7        t9        t:        jB                              dd              tE         j(                        }tG        t1         j                  j                        ||tH        jK                  |      t        |      ||      S c c}w c c}w c c}w )Nc                      | j                   v S ra   r'   )rf   input_arg_sets    r$   <lambda>z'signature_from_schema.<locals>.<lambda>  s    aff6M r#   c                      | j                   v S ra   r   )rf   kwarg_only_sets    r$   r   z'signature_from_schema.<locals>.<lambda>  s    qvv'? r#   c                      | j                   v S ra   r   )rf   out_arg_sets    r$   r   z'signature_from_schema.<locals>.<lambda>  s    166[3H r#   c              3   P   K   | ]  }|j                   j                            y wra   rb   rd   s     r$   rg   z(signature_from_schema.<locals>.<genexpr>  s"      $%   $&c              3   :   K   | ]  }|j                   d k(    yw)requires_gradNr   rd   s     r$   rg   z(signature_from_schema.<locals>.<genexpr>  s     
L166_$
Ls   zTargument named requires_grad is reserved, should not explicitly add it in the schemac              3   P   K   | ]  }|j                   j                            y wra   rb   re   rs     r$   rg   z(signature_from_schema.<locals>.<genexpr>  s     JAFF113Jr  factory)newlikenew__likedummyr'   r.   c                     j                   j                  }|y t        ||       }|j                  |j                  dk(  ry t	        j
                  |j                  |j                  d      S )Nr6   Fr0   )r~   r   getattrr)   r   r   r(   )r'   	topt_argsrf   r   s      r$   topt_default_initz0signature_from_schema.<locals>.topt_default_init%  s\    55I 	4(Ayy AII$7##AIIqvveDDr#   dtyper6   r   layoutdevicez$torch::tensors::get_default_device()
pin_memoryFalser  )r   )r'   rq   rr   rs   rt   r   r,   )&rz   r~   pre_self_positionalself_argr{   r   post_self_positionalpre_tensor_options_kwarg_onlypost_tensor_options_kwarg_onlyrF   flat_positionalr'   flat_kwarg_onlyr|   mapfilterri   flat_non_outschema_order_arguments
ValueErrorr   r   rW   rX   r[   r   r&   r   r   r   r   r   r   r\   r   rp   rT   rm   )r   r   r,   r   r   rf   rq   rr   r^   has_tensor_input_arghas_tensor_returnr'   is_factory_functionis_like_or_new_functionis_dummy_functionrt   r  r   r   r   r   s   `                 @@@r$   r   r     s    DKK223dnn--9DNN++445KK334KK<<= 	KK==>KK""#%)^^%C%CDQVVDM&*nn&D&DEaffEN#'>>#5#56a1666Ks8V,Mt%TUVJHf?FGL C&)H$"OPQG  )-)D)D  
Ld.I.I.K
LLb
 	
 JT\\JJD+y8 6"66  	_, 	"??6"	"==! 
 *W4026@Q	EC 	EHSM 	E 	""!(6+<+<"=>3D9J79S		
 	""!(6=="9:3D9J89T		
 	""!(6=="9: /  *(3 BA	
 	""!!(6;;"78!		
 	""$!(6;;"78!		
 DLL1G !%227;!"56 W EE6s   RR#;R(r   .c                     t        |       dk  st        d | D              rg S t        d | D              rt        d      | D cg c]  }t	        |j
                         c}S c c}w )NrL   c              3   8   K   | ]  }|j                   d u   y wra   r   r  s     r$   rg   z'structseq_fieldnames.<locals>.<genexpr>w  s     @1$@   c              3   8   K   | ]  }|j                   d u   y wra   r   r  s     r$   rg   z'structseq_fieldnames.<locals>.<genexpr>z  s     /!qvv~/r)  z)Unnamed field is not supported by codegen)rh   allri   r!  r[   r'   )r   r  s     r$   structseq_fieldnamesr,  v  sX    
7|qC@@@	/w// HII%,-AFF---s   A#c                    d}t        | t              r| j                  } d}t        | t              r| j                  t
        j                  t
        j                  fv rd}| j                  t
        j                  k(  rd}n| j                  t
        j                  k(  rd}n| j                  t
        j                  k(  rd}n| j                  t
        j                  k(  rd}nc| j                  t
        j                  k(  rd}nB| j                  t
        j                  k(  rd	}n!| j                  t
        j                  k(  rd
}n | j                  t
        j                  k(  rd}n| j                  t
        j                   k(  rd}n| j                  t
        j"                  k(  rd}n| j                  t
        j$                  k(  rd}n|| j                  t
        j&                  k(  rd}n[| j                  t
        j(                  t
        j*                  t
        j,                  fv r| j                  j                  }nt        | t.              rt        | j                        dk(  r| j0                  dnd}n| j3                         r-t        | j                  t              rd}| j0                  dnd}nt        | j                        dk(  rd}nvt        | j                        dk(  r+| j0                  t5        | j                        }d| d| d}n3t5        | j                        }d| d}nt7        dt9        |              |rdz   dz   }S )NFT_intzUnion[_int, SymInt]_floatr[   zUnion[Number, _complex]_dtype_bool_qscheme_layoutzOptional[DeviceLikeType]memory_formatzUnion[str, ellipsis, None]zUnion[Storage, UntypedStorage]rV   zUnion[_int, _size]_sizez/Union[Tensor, Tuple[Tensor, ...], List[Tensor]]z'Union[Tuple[Tensor, ...], List[Tensor]]r   zSequence[_float]r   zUnion[z, Sequence[z]]z	Sequence[rH   r   rG   )rS   r   rU   r   r'   r   rV   r   r   r   r[   r   r   r\   r   r   r   r   r   r   r3   r   r   r   rl   rc   rR   rj   r   )r   add_optionalretrU   s       r$   rR   rR     s{   L!\"FF!X66fjj&"4"455C66V]]"'CVVv||#CVVvzz!CVVv}}$+CVVv(((CVVv{{"CVVv~~%CVVv}}$CVVv}}$,CVVv***!CVVv~~%.CVVv~~%2CVVv'7'7GG&&++C	Ax	 qvv;%*+&&*<&'C !&&,/# 66% B> 
 [G#$C[H$);(0D4&D64C(0DdV1%C /Qy9::C#%Jr#   c                 v   t        | t              rt        | j                        }d| dS t        | t              rI| j
                  t        j                  k(  ry| j
                  t        j                  k(  rd}nt        |       S t        | t              rt        | j                        }d| dS t        |       S )NrG   rH   _devicezOptional[str]Tuple[z, ...])rS   r   return_type_str_pyirU   r   r'   r   r   r   rR   r   )r   innerr7  s      r$   r;  r;    s     !\"#AFF+5'##!X66V]]"VVv~~%!C(++!X#AFF+wf%% ##r#   r   c           	      .   | j                   j                   D cg c]  }t        |j                         }}| j                  }t	        | j                   j                         }|rdj                  d |D              }ddj                  |       d}d| d| dg}t        ||      D ]  \  }}	|j                  dd	| d
|	 dg       ! |j                  d| ddt        |       dt        |       dddg       dj                  |      }
||
fS y c c}w )Nr   c              3   2   K   | ]  }t        |        y wra   )r   )re   r'   s     r$   rg   z(returns_structseq_pyi.<locals>.<genexpr>  s     #G4DJ#Gs   r:  rH   zclass rK   z):z    @propertyz    def z
(self) -> r   z    def __new__(cls, sequence: z): ...z    n_fields: _int = z    n_sequeunce_fields: _int = z    n_unnamed_fields: _int = 0zG    def __init_subclass__(cls) -> NoReturn: ...  # prohibit subclassingr1   
)	r   r;  r(   r'   r,  r   ziprz   rh   )r   r  python_returnsstructseq_namefield_namesfield_names_strseq_typestructseq_def_linesr'   typstructseq_defs              r$   returns_structseq_pyirI    sL   ;D;L;L;T;TUa)!&&1UNU^^N&y'8'8'@'@AK ))#G;#GGDIIn56a8^$AhZr2
 [.9 	ID#&&#tfJse59	 	""1(6B'K(8'9:1#k2B1CD0Y		
 		"56 },,Y Vs   Dc                 J   t        | j                  j                        }|rd| j                   S | j                  j                  D cg c]  }t        |j                         }}t        |      dkD  rddj                  |      z   dz   S t        |      dk(  r|d   S yc c}w )Nztorch.return_types.rL   r:  r   rH   r   r6   )r,  r   r'   r;  r(   rh   r   )r   rC  r  rA  s       r$   r   r     s    &y'8'8'@'@AK$Y^^$455;D;L;L;T;TUa)!&&1UNU
>Q$))N33c99
>aa   Vs   	B psc                 j    t         t              r j                  }n|j                  }t	        j
                  |j
                  d|d|j                        }|j
                  j                  D ch c]  }|j                   c}dt        dt        f fd}t        t        ||            S c c}w )NF)r~   faithfulr-   r,   cpp_no_default_argscpp_argr.   c                     | j                   }| j                  v }j                  r| j                  dk(  rd}n)t              dk  xs | }|rddij	                  ||      }t        | j                  ||      S )Nr2   zconst at::Tensor &rL   zat::Tensor &
at::Tensor)r'   r?   r   )r(   r'   r,   rh   r>   r   )rO  r?   r   ensure_temp_safeout_argsrK  s       r$   dispatch_lambda_argz1dispatch_lambda_args.<locals>.dispatch_lambda_arg]  s    <<\\X-
99/+H  #8}1C^"L#h)  &!
 	
r#   )rS   r   r   r   r   r~   rN  rF   r'   r   r   r|   r  )rK  r   r-   schemacpp_argsrf   rT  rS  s   `      @r$   dispatch_lambda_argsrW  J  s     "/0%% }}""11H +1*:*:*>*>?Q!&&?H
W 
1G 
, ((3443 @s   2B0>   void*
at::Scalar
at::Streamat::QSchemeat::ScalarTypeat::IntArrayRef::std::vector<at::Tensor>::std::tuple<double,int64_t>#::std::tuple<at::Tensor,at::Tensor>.::std::tuple<at::Tensor,at::Tensor,at::Tensor>2::std::tuple<at::Tensor,::std::vector<at::Tensor>>2::std::tuple<at::Tensor,at::Tensor,double,int64_t>6::std::tuple<at::Tensor,at::Tensor,at::Tensor,int64_t>9::std::tuple<at::Tensor,at::Tensor,at::Tensor,at::Tensor>=::std::tuple<at::Tensor,at::Tensor,double,at::Tensor,int64_t>A::std::tuple<at::Tensor,at::Tensor,at::Tensor,at::Tensor,int64_t>D::std::tuple<at::Tensor,at::Tensor,at::Tensor,at::Tensor,at::Tensor>O::std::tuple<at::Tensor,at::Tensor,at::Tensor,at::Tensor,at::Tensor,at::Tensor>r::std::tuple<at::Tensor,at::Tensor,at::Tensor,at::Tensor,c10::SymInt,c10::SymInt,at::Tensor,at::Tensor,at::Tensor>r\   voidr   r   rQ  c                     t        d | j                  j                  D              }t        j                  |d      j                         }|t        vr$t        | j                  j                   d|       |S )Nc              3   ^   K   | ]%  }t        |j                  |j                  d        ' y wra   )r   r'   r(   r  s     r$   rg   z-dispatch_lambda_return_str.<locals>.<genexpr>  s&      ')*qvvqvvt$'s   +-Tr0   z returns unsupported type )	r|   r   r   r   returns_typecpp_typeSUPPORTED_RETURN_TYPESrj   r'   )r   returns_without_annotation
return_strs      r$   dispatch_lambda_return_strrs    sp    ( "' './ffnn' " !!"<TJSSUJ//affkk]*DZLQRRr#   c                    | j                   j                         }t        j                  | j                   |      }t        j
                  | j                  v rd| S t        j                  | j                  v rPt        |       s9| j                   j                  j                  j                  j                  d      rd}nd}| d| S t        d| j                          )N)symint_overloadzself.r  torchatz::z1could not dispatch, neither function nor method: )r   
has_symintr   r'   r   r,   variantsr   r   r   rX   rj   )r   r-   r'   	namespaces       r$   cpp_dispatch_targetr{    s    VV F88AFFF3D~~#tf~1::%a AFFKK$4$4$9$9$B$B7$KIIBtf%%
J166(S
TTr#   N)python_signaturer|  c                R    t         d      j                         }t               }t        |t              st        d |D              }n"t        t         fd|j                              }t        j                   j                  v rt        t        dj                  |            }|S )NFr   c              3   4   K   | ]  }|j                     y wra   r   rd   s     r$   rg   z%cpp_dispatch_exprs.<locals>.<genexpr>  s     /aff/s   c                 F    | dk7  xs j                   j                         S )NrF   )r   	is_out_fn)nr   s    r$   r   z$cpp_dispatch_exprs.<locals>.<lambda>  s    !u*:(8(8(: r#   r2   )r   r~   r|   rS   r   r  r   r   r,   ry  __ne__)r   r|  rV  r   s   `   r$   cpp_dispatch_exprsr    s    
 #15"A"K"K"MH"WE&(AB/h// : 66
 ~~#fV]]E23Lr#   r0   r)   r*   c                   |d u}|rt        |       dvrt        d|  d      t        | t              r| j                  t
        j                  t
        j                  t
        j                  t
        j                  t
        j                  fv r$| j                  j                  j                         S | j                  t
        j                  k(  r|rdS dS | j                  t
        j                  k(  r|rdS dS | j                  t
        j                  k(  ry| j                  t
        j                  k(  ry| j                  t
        j                   k(  r|rd	S dS | j                  t
        j"                  k(  r|rd
S dS | j                  t
        j$                  k(  ry| j                  t
        j                   k(  ry| j                  t
        j&                  k(  r|rdS dS | j                  t
        j(                  k(  rxyt        | t*              rt        | j,                        dk(  ryt        | j,                        dk(  ryt        | j,                        dk(  ry|s |dv rt/        | j,                  d d |      dz   S t/        | j,                  |||      S t        | t0              rt        | j,                        dk(  r| j2                  d| j2                   dS dS t        | j,                        dk(  ryt        | j,                        dk(  ry t        | j,                        d!k(  ry"t        | j,                        d#k(  ry$t        | j,                        d%k(  r|rd&S d"S t        | j,                        d'k(  ry(t        d|  d)      )*N)ScalarType?r   r   Device?r   Layout?r\   bool?ztype 'z+' does not supported unpacking with defaultscalartypeWithDefault
scalartypedeviceWithDefaultr  toInt64toSymInttoBoolWithDefaulttoBooltoDouble
stringViewlayoutWithDefaultr  memoryformatr3   optionalTensorr   	generatorz	Dimname[]toDimnameListOptional)Nr6   r8   r0   r   ztensorlist_n<r   
tensorlistr   list_of_optional_tensorsr   dimnamelistrV   intlistr   
doublelistr   
symintlistr   
scalarlistz%' is not supported by PythonArgParser)r[   rj   rS   r   r'   r   r3   r   r   r   r   lowerr   r   r   rV   r   r\   r   r   r   r   rU   arg_parser_unpack_methodr   rl   )r   r)   r*   r-   has_default_inits        r$   r  r    s    $4/CF 	+ 	 VA3&QRSS!X66MMMMNNMMNN
 
 66;;$$&&VVv(((.>*PLPVVv}}$*:&HHVVv)))VVvzz!VVv}}$!':6Y6VVv{{"*:&HHVVv||#VVvzz!VVv}}$*:&HHVVv***!	A|	$qvv;("#[K'[K'*!g1O&O )tFKjX
 ,f  
Ax	 qvv;("010B]166(!,TT[I%-[I% [E![G#[H$#)<8y8[H$
s"GH
IIr#   	arg_indexc                    |j                   d u}t        |j                  |j                  |j                   |      }|rd|j                    nd}d| d|  | d}t	        |j
                  || |      S )N)r   r)   r*   r-   r   r1   z_r.rK   rN   )r'   r   r   r   )r*   r  r(   r)   r   r'   )r  rf   r-   has_defaultunpack_methodr)   r   s          r$   arg_parser_output_exprr  B  s}     ..,K,
&&!))!..M (31>>"#GqG9A6D$VV	 r#   c          
          t        | j                               D ci c]   \  }}t        |||      }|j                  |" c}}}S c c}}}w )Nr0   )	enumerater~   r  r'   )rK  r   r-   irf   es         r$   arg_parser_output_exprsr  U  sP    
 blln- Aq(Af=A 	
	  s   %Ar  r  r  r  )r  r  r  r  r  c                   t        | ||      }t        | ||      }g }i t        |      }| j                  d      D ]  }|j                  }||j                     j
                  }	|r!|dk(  r|j                  d|	 dg       ||<   Lt        |t              ryt        |j                        dkD  ra|j                  j                         rG|j                  d|	 dg       t        |j                        D ]  \  }
}d	|
 d
|j                  <    t        |j                        dk(  r+|j                  d| d|	 dd| d| d| dg       ||<   |	|<    | j                   rdd<   | j"                  D cg c]  }|j                   c}|r|j                  j                         rt%        |j                   d      | j"                  D ]  }|j                  t&        vr%t%        |j                   d|j                   d      t        |j                        t&        j)                  |j                        k7  spt%        |j                   dt        |j                         d|j                   d       t+        fdt&        j-                         D              st%        |j                   d       |j/                  d|d   j
                   d|d   j
                   d|d   j
                   d |d!   j
                   d"|d#   j
                   d$       d%d%<   |srdv r|j                  j                         st%        |j                   d&      t+        fd'd(D              st%        |j                   d)      |j/                  d*|d+   j
                   d,|d   j
                   d-|d   j0                   d,|d   j
                   d-|d   j
                   d,|d   j0                   d.       d!vrt%        |j                   d/ d
      t3        t5        fd0|D              |1      S c c}w )2Nr0   T)rx   r2   zauto self = ;rL   zauto out = zout[rH   z
Dimname[]?zauto __rQ   zc10::optional<DimnameList> z = __z$ ? c10::make_optional(DimnameList(__z.value())) : c10::nullopt;z : tensor options with output argz%: unrecognized tensor options field 'z' in python binding argumentsz: unrecognized type 'z' for tensor options field ''c              3   &   K   | ]  }|v  
 y wra   r"   re   rf   tensor_options_args_namess     r$   rg   z(dispatch_lambda_exprs.<locals>.<genexpr>  s      
/0A**
   z": incomplete tensor options args: z0const auto options = TensorOptions()
    .dtype(r  z)
    .device(r  z)
    .layout(r  z)
    .requires_grad(r  z)
    .pinned_memory(r  z3);
torch::utils::maybe_initialize_device(options);
optionsz1: dtype in tensor_options_args without output argc              3   &   K   | ]  }|v  
 y wra   r"   r  s     r$   rg   z(dispatch_lambda_exprs.<locals>.<genexpr>  s     T!q55Tr  )r  r  z,: incomplete tensor options for output checkzcheck_out_type_matches(rF   r   z,
                       z);
zE: expected "requires_grad" in tensor_options_args absent, but found [c              3   <   K   | ]  }|j                        y wra   r   )re   rf   lambda_args_exprss     r$   rg   z(dispatch_lambda_exprs.<locals>.<genexpr>  s     C!%aff-Cs   )r   r   )r  rW  r   r~   r'   r   rz   rS   rT   rh   r^   r   r  r  r[   r(   r,   rt   rj   TENSOR_OPTIONS_FIELDSr>   r+  keysr{   r   r   r|   )rK  r   r-   arg_parser_outputslambda_argsr   has_toptionsrf   r'   arg_parser_exprr  out_argr  r  s               @@r$   dispatch_lambda_exprsr  j  s    1QvF&r1V<KE(*%a(L \\d\3 '6vv,QVV499DFNLL"?"315
 '+d#q+,AII"  "LL!/!2!4
 (		2 >
7481+!',,/>[L( LLdV3&7q91$uTFBfgkfl  mG  H '+d# '6d#O'6T 
yy$*&! 241G1G HA H66!&&)IJKK'' 	Avv22"vvhCAFF8Khi  166{377??"vvh3CK=@\]^]c]c\ddef 	  
4I4N4N4P
 
 66(<=V<WX  	w',,- .)../ 0)../ 0&7<<= >&|499: ;
	
 (1)$ 5//66##%"vvhOP  T?STT"vvhJK  LL*51667r:LW:U:Z:Z9[ \*73@@ADVW_D`DeDeCf g*8499:"=OPX=Y=f=f<g h ";;66(_`y_zz{|  'C{CC y !Is   ?P?)T)@dataclassesr   typingr   r   r   r   r   r	   r
   torchgen.apir   torchgen.api.typesr   r   r   torchgen.genr   torchgen.modelr   r   r   r   r   r   r   r   r   r   r   r&   rT   rp   r   r   r   r   r   r   r\   r   r   r[   r<   rV   r   r   r   r   r,  rR   r;  rI  r   rW  rp  rs  r{  r  r  r  r  r  r  r"   r#   r$   <module>r     s   ! D D D  G G *  | $      $U) U) U)p $#C #C #CL $tU tU tUr $' ' 'f $   $'
 '
 '
^ $   $* * *0 $  2 9> Nn N N, N7. 7T 7 %*$A7A7!A737A7A7H$ 8C=  ^   */E"&59 F
F  }F 	F
 
F F`.%"4 .c .&BT Bc BJ$4 $C $.-_ -%S/9R -`
 
3 
l <@)5)5*)548)5
!3&')5^ :. S :U> Uc U" 37 / 38_	R UYTJTJsmTJ3;C=TJMQTJTJt :>%26( ?C*7;	#(
()   ?C{{*{7;{ {r#   