
    wi                       d dl mZ d dlmZ d dl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rd dl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 dbd'Z%dcd(Z&dd	d)ddd/Z'ded1Z(dfd4Z)ddd5dgd7Z*ddd5dhd<Z+did@Z,djdAZ-djdBZ.dkdEZ/dldFZ0	 dmdndIZ1h dJZ2dodKZ3dodLZ4dMdNdpdRZ5d	dSdqdVZ6d	dSdrdYZ7d	dSdsd[Z8d\d]d^d_d_d`Z9d	dSdtdaZ:dMS )u    )annotations)	dataclass)TYPE_CHECKING)cpp)BindingCppSignatureCppSignatureGroup)pythonify_default)
ArgumentBaseTyBaseTypeFunctionSchemaListTypeNativeFunctionOptionalTypeReturnTypeVariant)SequenceT)frozenc                      e Zd ZU ded<   dS )PythonReturnstuple[Return, ...]returnsN__name__
__module____qualname____annotations__     c/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/torchgen/api/python.pyr   r      s         r!   r   c                  X    e Zd ZU ded<   ded<   ded<   ded<   dd	d
ddZdddddZdS )PythonArgumentstrnamer   type
str | Nonedefaultdefault_initFTmethodsymintr,   boolr-   returnc               "   t          | j        |                              dd                              dd          }| j        }|dk    r|dv r|sd}| j        /ddddd	                    | j        | j                  }| d
| d| S | d
| S )Nr-   zconst  z &self)TensorNumberinputNone)nullptr::std::nulloptstd::nullopt{} =)argument_type_strr'   replacer&   r)   get)r3   r,   r-   type_strr&   r)   s         r"   argument_strzPythonArgument.argument_str   s    di777WXr""WT2 	 y 6>>h*>>>v>D <#!"( &	 
 c$,--  1111111'''''r!   r,   
deprecatedrD   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   }|ot          | t                    o
| j        d	k    }| j        |st          | j        t                    r| j        j        t          t          j
                  k    r| j                            d
          rn| j                            d          rTdd                    t          t          j        | j        dd                             d                              z   dz   }n'd	d	d	d	ddd                    | j        | j                  }| d| d| S | d| S )Nr3   r4   r6   from_out	Optional[]r7   {}(,    ,)contiguous_formatper_tensor_affine)r8   r9   r:   r;   zc10::MemoryFormat::ContiguouszQScheme::PER_TENSOR_AFFINE:  = )argument_type_str_pyir'   r&   
isinstancePythonOutArgumentr)   r   elemr   r   int
startswithendswithjoinmapr%   stripsplitr@   )r3   r,   rD   rA   r&   treat_as_no_defaultr)   s          r"   argument_str_pyizPythonArgument.argument_str_pyi   s    )33y 6>>h(2262*2D6>>CKD 5==X11*1"X-3H  '4!233'& 	 <#,?#49h//2INhvz&:&:::L++C00 ;L))#.. ;
 $))C	4<"3E3K3KC3P3P$Q$QRRRUXX 
  &&,$* 5H2E  #dlDL11  44h447444((h(((r!   N)r,   r.   r-   r.   r/   r%   )r,   r.   rD   r.   r/   r%   )r   r   r   r   rB   rc   r    r!   r"   r$   r$      s         IIIJJJ  .34 ( ( ( ( ( (6 !&%0) 0) 0) 0) 0) 0) 0) 0)r!   r$   c                  2    e Zd ZU ded<   edd            ZdS )rY   tuple[PythonArgument, ...]outputsr/   PythonOutArgument | Nonec                z   | sd S t          |           }|dk    r*t          | d         j        | d         j        dd |           S |dk    rdt	          d | D                       rt          d|            t          dt          t          t          j	                  |          dd |           S t          d          )	NrO   r   r7   )r&   r'   r)   r*   rf   c              3  J   K   | ]}|j                                          V  d S Nr'   is_tensor_like.0as     r"   	<genexpr>z1PythonOutArgument.from_outputs.<locals>.<genexpr>F  s3      @@1qv,,...@@@@@@r!   zUnsupported output type: rH   z!Unexpected PythonOutArgument size)lenrY   r&   r'   anyRuntimeErrorr   r   r   r4   AssertionError)rf   sizes     r"   from_outputszPythonOutArgument.from_outputs7  s     	47||199$QZ_QZ_!    AXX@@@@@@@ J"#Hw#H#HIII$hv}55t<<!    ABBBr!   N)rf   re   r/   rg   )r   r   r   r   staticmethodrv   r    r!   r"   rY   rY   .  sH          ('''C C C \C C Cr!   rY   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ed!d            Zdddd"dZd#dZd#dZdddd$dZ	ddd%dZ
ddd&dZd S )'PythonSignaturer%   r&   re   
input_argsinput_kwargsrg   output_argsr   r   tensor_options_argsr.   r,   r/   c                    dS )NFr    r3   s    r"   rD   zPythonSignature.deprecatedp  s    ur!   F)skip_outputsskip_tensor_optionsr   r   .tuple[PythonArgument | PythonOutArgument, ...]c               
   g }|                     | j                   |                     | j                   | j        |s|                    | j                   |s|                     | j                   t          |          S rj   )extendrz   r{   r|   appendr}   tuple)r3   r   r   results       r"   	argumentszPythonSignature.argumentst  s~     <>do&&&d'(((''MM$*+++" 	4MM$2333V}}r!   r[   c                D    t          |                                           S rj   )rq   r   r   s    r"   arguments_countzPythonSignature.arguments_count  s    4>>##$$$r!   c                T    t          | j                  t          | j                  z   S rj   )rq   rz   r{   r   s    r"   
output_idxzPythonSignature.output_idx  s"    4?##c$*;&<&<<<r!   Tr   r-   r-   c               
                          |          } fd|D             }t           j                  }t          |          |k    r|                    |d            j         dd                    |           dS )Nr   c                H    g | ]}|                     j                   S )r+   )rB   r,   )rn   ro   r3   r-   s     r"   
<listcomp>z1PythonSignature.signature_str.<locals>.<listcomp>  s8     %
 %
 %
BCANN$+fN==%
 %
 %
r!   *rM   rN   rR   )r   rq   rz   insertr&   r^   )r3   r   r-   argsschema_formalspositional_argcs   ` `   r"   signature_strzPythonSignature.signature_str  s    ~~<~88%
 %
 %
 %
 %
GK%
 %
 %
 do..~00!!/3777)::dii77::::r!   r   c               f                          |          } fd|D             }t           j                  }t          |          |k    r|                    |d           t	                     } j        r|                    dd           d j         dd                    |           d	| d
S )Nr   c                F    g | ]}|                     j                   S r,   rc   r,   rn   ro   r3   s     r"   r   z5PythonSignature.signature_str_pyi.<locals>.<listcomp>  9     %
 %
 %
78Adk22%
 %
 %
r!   r   r   r3   def rM   rN   ) -> : ...)r   rq   rz   r   returns_str_pyir,   r&   r^   r3   r   r   r   r   returns_strs   `     r"   signature_str_pyiz!PythonSignature.signature_str_pyi  s    ~~<~88%
 %
 %
 %
<@%
 %
 %
 do..~00!!/3777 &d++; 	-!!!V,,,TdiTT$))N";";TT+TTTTr!   r(   c               X                          |          } fd|D             }                                 }t           j                  }d}|dk    r@|d         j        }t          |t                    rt          |j                  dv r|dk    rd}|sd S t          |t                    sJ d|d         j	        z   d	z   t          |j                  z   |d<   t                     } j        r|                    dd
           d j	         dd                    |           d| dS )Nr   c                F    g | ]}|                     j                   S r   r   r   s     r"   r   z<PythonSignature.signature_str_pyi_vararg.<locals>.<listcomp>  r   r!   Fr   )r[   SymIntrO   Tr   rU   r3   r   rM   rN   r   r   )r   r   rq   rz   r'   rX   r   r%   rZ   r&   rW   r   r,   r   r^   )	r3   r   r   r   num_argsnum_positionalargshave_vararg_versionvararg_typer   s	   `        r"   signature_str_pyi_varargz(PythonSignature.signature_str_pyi_vararg  sf   ~~<~88%
 %
 %
 %
<@%
 %
 %
 '')) 11#a<<q',K;11+())->>>&!++&*#" 	4 +x00000$q',%(=k>N(O(OO 	q &d++; 	-!!!V,,,TdiTT$))N";";TT+TTTTr!   Nr/   r.   )r   r.   r   r.   r/   r   )r/   r[   r   r.   r-   r.   r/   r%   r   r.   r/   r%   r   r.   r/   r(   )r   r   r   r   propertyrD   r   r   r   r   r   r   r    r!   r"   ry   ry   S  sV         III +*** -,,,))))  4333 LLL   X ',
 
 
 
 
 
% % % %= = = = 5:$ 	; 	; 	; 	; 	; 	; 9> U U U U U U  @E "U "U "U "U "U "U "U "Ur!   ry   c                  h    e Zd ZU ded<   ded<   edd            Zdd	d
ddZddddZddddZdS )PythonSignatureDeprecatedr   deprecated_schematuple[str, ...]deprecated_args_exprsr/   r.   c                    dS )NTr    r   s    r"   rD   z$PythonSignatureDeprecated.deprecated      tr!   FTr   r   r-   r%   c               B    t                               | ||          dz   S )Nr   z|deprecated)ry   r   )r3   r   r-   s      r"   r   z'PythonSignatureDeprecated.signature_str  s0    ))< *   	
r!   r   c               ,                          |          } fd|D             }t           j                  }t          |          |k    r|                    |d           t	                     }d j         dd                    |           d| dS )	Nr   c                H    g | ]}|                     j        d           S )TrC   r   r   s     r"   r   z?PythonSignatureDeprecated.signature_str_pyi.<locals>.<listcomp>  s;     %
 %
 %
HIAdkdCC%
 %
 %
r!   r   r   rM   rN   r   r   )r   rq   rz   r   r   r&   r^   r   s   `     r"   r   z+PythonSignatureDeprecated.signature_str_pyi  s    ~~<~88%
 %
 %
 %
MQ%
 %
 %
 do..~00!!/3777%d++TdiTT$))N";";TT+TTTTr!   r(   c                   d S rj   r    )r3   r   s     r"   r   z2PythonSignatureDeprecated.signature_str_pyi_vararg  r   r!   Nr   r   r   r   )	r   r   r   r   r   rD   r   r   r   r    r!   r"   r   r     s          &%%% +***   X 5:$ 
 
 
 
 
 
 9> 
U 
U 
U 
U 
U 
U @E        r!   r   c                  $    e Zd ZU ded<   ded<   dS )!PythonSignatureNativeFunctionPairry   	signaturer   functionNr   r    r!   r"   r   r     s*         r!   r   c                  F    e Zd ZU ded<   ded<   ded<   edd            ZdS )PythonSignatureGroupry   r   r   basezNativeFunction | Noneoutplace
functionalr   rH   (PythonSignatureNativeFunctionPair | Noner/   c                    |t          |j        |j        d           S |j        j                                        }|j        j        |d<   t           t          |j                  di ||j        |j                  S )N)r   r   r   r}   r    )r   r   r   __dict__copyr}   r'   )clsr   rH   signature_kwargss       r"   
from_pairszPythonSignatureGroup.from_pairs  s     ;'$.(    =16688
  4 	./ $)d3=))==,<==$\
 
 
 	
r!   N)r   r   rH   r   r/   r   )r   r   r   r   classmethodr   r    r!   r"   r   r     s^         
   $###
 
 
 [
 
 
r!   r   c                  .    e Zd ZU ded<   ded<   ded<   dS )DispatchLambdaArgumentr%   r&   rA   r.   
is_out_argNr   r    r!   r"   r   r   >  s0         IIIMMMr!   r   c                  P    e Zd ZU ded<   ded<   ded<   ded<   edd	            Zd
S )PythonArgParserOutputExprr%   r&   exprr[   indexr$   argumentr/   c                    d| j          dS )Nz
_r.isNone(rR   )r   r   s    r"   is_none_exprz&PythonArgParserOutputExpr.is_none_exprY  s    )DJ))))r!   N)r/   r%   )r   r   r   r   r   r   r    r!   r"   r   r   J  sc          III III JJJ * * * X* * *r!   r   c                  $    e Zd ZU ded<   ded<   dS )DispatchLambdaArgumentExprszSequence[str]exprsinitsNr   r    r!   r"   r   r   c  s.           r!   r   Fr   fr   r,   r.   r/   r   c               8    t          j        | |          j        S )Nr   )r	   from_native_functionr   )r   r,   s     r"   _cpp_signaturer   }  s    1!FCCCMMr!   c                (    | j         j        j        d uS rj   )funcr   tensor_options)r   s    r"   has_tensor_optionsr     s    6*$66r!   simple_typer-   tr   r   r-   r%   c                  t          | t                    r| j        t          j        k    rdS | j        t          j        k    rdS | j        t          j        k    rdS | j        t          j        k    rdS | 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 nt          | t*                    r6t          | j                  dk    rdS t/          | j        ||          }| dS t          | t0                    r(|s| j        nd }t          | j                  dk    r| j        J d	| j         d
S t          | j                  dk    r
|d| dndS t          | j                  dk    r|r
|d| dndS |d| dndS t          | j                  dk    r
|d| dndS t          | j                  dk    r
|d| dndS t          | j                  dk    r|rdS dS t          | j                  dk    r
|d| dndS t/          | j        ||          }d| d
S t5          dt7          |                      )Nr4   int64_tdoublezc10::string_viewTensor?r   ?r.   z::std::array<bool,>r[   zIntArrayRef[rJ   IntArrayRefr   zSymIntArrayRef[SymIntArrayRefzTensorList[
TensorListScalarzScalarList[
ScalarListz"c10::List<::std::optional<Tensor>>z*const c10::List<::std::optional<Tensor>> &DimnamezDimnameList[DimnameListz	ArrayRef<unrecognized type )rX   r   r&   r   r4   r[   floatr%   r.   QSchemer   
ScalarType	GeneratorStorageLayoutDeviceDeviceIndexMemoryFormatr   Streamr   r   rZ   r>   r   ru   rs   repr)r   r   r-   rZ   ru   s        r"   r>   r>     s    !X ;#6V]""8Vvz!!9Vv|##8Vvz!!%%VKNMNMMNMM
 
 
  6;!
$ 
A|	$	$  #qv;;(""9 [PPPzzz	Ax	 	  #(2qvvdqv;;&  6%%%11111[[E!!-1-=)$))))=P[[H$$ U151A-d----GW 261A-d----}T[[H$$,0,<(((((,N[[H$$,0,<(((((,N[[I%% D;;CC[[I%%-1-=)$))))=P [PPP"4""""
5DGG55
6
66r!   
int | Nonec                p    |                                  }|t          |j                  dk    r|j        S d S )Nr.   )is_list_liker%   rZ   ru   )r   ls     r"   argument_type_sizer    s4    	A}QV..vtr!   ro   r   c                    t          | j        | j        | j        ;t	          t          t          j        | j        | j        d                              nd d           S )NFr1   r&   r'   r)   r*   )r$   r&   r'   r)   r%   r
   r   default_expr)ro   s    r"   r   r     sb    VV y$ !#"219afU"S"S"STTUUU
 
 
 
r!   )r,   pyir	  c               <    t          | j        | j        ||          S )N)category_overrider,   r	  )signature_from_schemar   r  )r   r,   r	  s      r"   r   r     s)     !	!"5f#   r!   r   r   r  r(   c          
     	    g }|                      j        j                   |s0 j        j        $|                     j        j        j                   |                      j        j                   |                      j        j                   |                      j        j                   |                      j        j	                   d  j        j
        D             d  j        j        D             d  j        j	        D             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                                  D                       rt%          d	          t          d
  j        D                       }	t)          j                   }
|dk    p|	o| }|dv p)|
                    d          p|
                    d          }|dk    }g }|s|r|sd  fd}|                    t1          dt3          t5          t6          j                            d|rd n
 |d                               |                    t1          dt3          t5          t6          j                            d|rd n
 |d                               |                    t1          dt3          t5          t6          j                            d|rd n |d          pd                     |                    t1          dt3          t5          t6          j                            dd                      |                    t1          dt3          t5          t6          j                            dd                      tA           j                  }tC          tE           j        j                  ||tF          $                    |          t          |          ||          S )!Nc                    h | ]	}|j         
S r    r&   rm   s     r"   	<setcomp>z(signature_from_schema.<locals>.<setcomp>  s    DDDQVDDDr!   c                    h | ]	}|j         
S r    r  rm   s     r"   r  z(signature_from_schema.<locals>.<setcomp>  s    EEEafEEEr!   c                    h | ]	}|j         
S r    r  rm   s     r"   r  z(signature_from_schema.<locals>.<setcomp>  s    666a16666r!   c                    | j         v S rj   r  )ro   input_arg_sets    r"   <lambda>z'signature_from_schema.<locals>.<lambda>  s    af6M r!   c                    | j         v S rj   r  )ro   kwarg_only_sets    r"   r  z'signature_from_schema.<locals>.<lambda>
  s    qv'? r!   c                    | j         v S rj   r  )ro   out_arg_sets    r"   r  z'signature_from_schema.<locals>.<lambda>  s    16[3H r!   c              3  H   K   | ]}|j                                         V  d S rj   rk   rm   s     r"   rp   z(signature_from_schema.<locals>.<genexpr>  sA        $%     r!   c              3  ,   K   | ]}|j         d k    V  dS )requires_gradNr  rm   s     r"   rp   z(signature_from_schema.<locals>.<genexpr>  s)      
L
L16_$
L
L
L
L
L
Lr!   zTargument named requires_grad is reserved, should not explicitly add it in the schemac              3  H   K   | ]}|j                                         V  d S rj   rk   rn   rs     r"   rp   z(signature_from_schema.<locals>.<genexpr>   s0      JJAF1133JJJJJJr!   factory)newlikenew__likedummyr&   r%   r/   r(   c                    j         j        }|d S t          ||           }|j        |j        dk    rd S t	          j        |j        |j        d          S )Nr7   Fr1   )r   r   getattrr)   r   r  r'   )r&   	topt_argsro   r   s      r"   topt_default_initz0signature_from_schema.<locals>.topt_default_init0  s\    5I t	4((Ay AI$7$7t#AIqveDDDDr!   dtyper7   r  layoutdevicez$torch::tensors::get_default_device()
pin_memoryFalser  r   )r&   rz   r{   r|   r}   r   r,   )r&   r%   r/   r(   )%r   r   pre_self_positionalself_argr   r   post_self_positionalpre_tensor_options_kwarg_onlypost_tensor_options_kwarg_onlyrH   flat_positionalflat_kwarg_onlyr   r_   filterrr   flat_non_outschema_order_arguments
ValueErrorr   r   r&   r\   r]   r$   r   r   r   r   r   r   r.   r   ry   r%   rY   rv   )r   r  r,   r	  r   rz   r{   rf   has_tensor_input_arghas_tensor_returnr&   is_factory_functionis_like_or_new_functionis_dummy_functionr}   r)  r   r  r  r  s   `                @@@r"   r  r    s    DKK2333 6dn-9DN+4555KK3444KK<=== 	KK=>>>KK"###DDT^%CDDDMEEdn&DEEEN664>#5666Ks8V,M,M,M,Mt%T%TUUVVJHf????FFGG L C&)H)H)H)H$"O"OPPQQG   )-)D     
L
Ld.I.I.K.K
L
L
LLL 
b
 
 	
 JJT\JJJJJD+y8 6"66  	_, 	"??6""	"==!! 
 *W402 =
6 =
@Q =
	E 	E 	E 	E 	E 	E 	""!(6+<"="=>>3SDD9J9J79S9S  		
 		
 		
 	""!(6="9"9::3TDD9J9J89T9T  		
 		
 		
 	""!(6="9"9:: /DD *)(33 BA  	
 	
 	
 	""!!(6;"7"788!	  	
 	
 	
 	""$!(6;"7"788!	  	
 	
 	
 DL111G  !%227;;!"566   r!   r   r   	list[str]c                    t          |           dk    st          d | D                       rg S t          d | D                       rt          d          d | D             S )NrO   c              3  (   K   | ]}|j         d u V  d S rj   r  r  s     r"   rp   z'structseq_fieldnames.<locals>.<genexpr>  s(      @@1$@@@@@@r!   c              3  (   K   | ]}|j         d u V  d S rj   r  r  s     r"   rp   z'structseq_fieldnames.<locals>.<genexpr>  s(      //!qv~//////r!   z)Unnamed field is not supported by codegenc                6    g | ]}t          |j                  S r    )r%   r&   r  s     r"   r   z(structseq_fieldnames.<locals>.<listcomp>  s     ---AF---r!   )rq   allrr   r:  r/  s    r"   structseq_fieldnamesrF    sy    
7||qC@@@@@@@	//w///// 
	J HIII--W----r!   c                h   d}t          | t                    r	| j        } d}t          | t                    r| j        t
          j        t
          j        fv rd}| j        t
          j        k    rd}n7| 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        k    rd}no| j        t
          j        k    rd}nV| 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        }nt          | t.                    rt          | j                  dk    r| j        dnd}n|                                 rd}| j        dnd}nt          | j                  dk    rd}nwt          | j                  dk    r%| j        t5          | j                  }d| d| d}n:t5          | 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]r[   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[rJ   r   rI   )rX   r   rZ   r   r&   r   r[   r   r   r   r%   r   r   r.   r   r   r   r   r   r   r4   r   r   r   ru   rl   rW   rs   r   )r   add_optionalretrZ   s       r"   rW   rW     s   L!\"" F!X 6;6fj&"4555C6V]""'CCVv|##CCVvz!!CCVv}$$+CCVv(((CCVv{""CCVv~%%CCVv}$$CCVv}$$,CCVv***!CCVv~%%.CCVv~%%2CCVv'7GGG&+C	Ax	 	  ;qv;;%*+&*<&&'CC 	&  L 6% BA> C
 [[G##$CC[[H$$);(00D4444D444CC(00D%d%%%CC 9Q99::: &C#%Jr!   c                   t          | t                    rt          | j                  }d| dS t          | t                    r=| j        t          j        k    rdS | j        t          j        k    rdS t          |           S t          | t                    rt          | j                  }d| dS t          |           S )NrI   rJ   _devicezOptional[str]tuple[z, ...])rX   r   return_type_str_pyirZ   r   r&   r   r   r   rW   r   )r   inners     r"   rU  rU    s     !\"" $#AF++#5####!X ,6V]""9Vv~%%"?(+++!X &#AF++%%%%% ###r!   r   tuple[str, str] | Nonec           	        d | j         j         D             }| j        }t          | j         j                   }|rdd                    |           d}d| d| dg}t	          ||          D ]#\  }}|                    dd	| d
| dg           $|                    d| ddt          |           dt          |           dddg           d                    |          }||fS d S )Nc                6    g | ]}t          |j                  S r    rU  r'   r  s     r"   r   z)returns_structseq_pyi.<locals>.<listcomp>  #    UUUa)!&11UUUr!   rT  rN   rJ   zclass rM   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 subclassingr2   
)r   r&   rF  r^   zipr   rq   )	r   python_returnsstructseq_namefield_namesseq_typestructseq_def_linesr&   typstructseq_defs	            r"   returns_structseq_pyire    sU   UU9;L;TUUUN^N&y'8'@AAK '- 9DIIn558882^22h222
 [.99 	 	ID#&&#9t99s999    	""B(BBB:K(8(8::D#k2B2BDD0Y		
 		
 		
 		"566 },,4r!   c                   t          | j        j                  }|r
d| j         S d | j        j        D             }t          |          dk    rdd                    |          z   dz   S t          |          dk    r|d         S dS )	Nztorch.return_types.c                6    g | ]}t          |j                  S r    rZ  r  s     r"   r   z#returns_str_pyi.<locals>.<listcomp>#  r[  r!   rO   rT  rN   rJ   r   r7   )rF  r   r&   rq   r^   )r   r`  r^  s      r"   r   r     s    &y'8'@AAK 65Y^555UU9;L;TUUUN
>Q$))N333c99
>aa  6r!   ps"tuple[DispatchLambdaArgument, ...]c                    t           t                    r j        }n|j        }t	          j        |j        d|d|j                  }d |j        j        D             d	 fd}t          t          ||                    S )
NF)r   faithfulr-   r,   cpp_no_default_argsc                    h | ]	}|j         
S r    r  rm   s     r"   r  z'dispatch_lambda_args.<locals>.<setcomp>c  s    ???Q!&???r!   cpp_argr   r/   r   c                    | j         }| j        v }j        r| j        dk    rd}n0t                    dk    p| }|rddi                    ||          }t          | j        ||          S )Nr3   zconst at::Tensor &rO   zat::Tensor &
at::Tensor)r&   rA   r   )r'   r&   r,   rq   r@   r   )rn  rA   r   ensure_temp_safeout_argsrh  s       r"   dispatch_lambda_argz1dispatch_lambda_args.<locals>.dispatch_lambda_argf  s    <\X-
9 	*//+HH  #8}}1C^ *"L#h))  &!
 
 
 	
r!   )rn  r   r/   r   )
rX   r   r   r   r   r   rl  rH   r   r_   )rh  r   r-   schemacpp_argsrs  rr  s   `     @r"   dispatch_lambda_argsrv  S  s     "/00 % }"1  H @?&*:*>???H
 
 
 
 
 
 
, ((33444r!   >   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   rp  c                    t          d | j        j        D                       }t          j        |d                                          }|t          vrt          | j        j         d|           |S )Nc              3  L   K   | ]}t          |j        |j        d           V   d S rj   )r   r&   r'   r  s     r"   rp   z-dispatch_lambda_return_str.<locals>.<genexpr>  sC       ' ')*qvqvt$$' ' ' ' ' 'r!   Tr1   z returns unsupported type )	r   r   r   r   returns_typecpp_typeSUPPORTED_RETURN_TYPESrs   r&   )r   returns_without_annotation
return_strs      r"   dispatch_lambda_return_strr    s    ( "' ' './fn' ' ' " " !"<TJJJSSUUJ///afkQQZQQRRRr!   c                v   | j                                         }t          j        | j         |          }t          j        | j        v rd| S t          j        | j        v rDt          |           s)| 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   r]   rs   )r   r-   r&   	namespaces       r"   cpp_dispatch_targetr    s    V  F8AFF333D~##t~~1:%%a   	AFK$4$9$B$B7$K$K 	III%%t%%%
S16SS
T
TTr!   N)python_signaturer  PythonSignature | Noner   c               d    t           d                                          }d}t          |t                    st	          d |D                       }n%t	          t           fd|j                            }t          j         j	        v r"t	          t          dj
        |                    }|S )NFr   r    c              3  $   K   | ]}|j         V  d S rj   r  rm   s     r"   rp   z%cpp_dispatch_exprs.<locals>.<genexpr>  s$      //af//////r!   c                B    | dk    pj                                         S )NrH   )r   	is_out_fn)nr   s    r"   r  z$cpp_dispatch_exprs.<locals>.<lambda>  s    !u*:(8(8(:(: r!   r3   )r   r   rX   r   r   r7  r   r   r,   r  __ne__)r   r  ru  r   s   `   r"   cpp_dispatch_exprsr    s    
 #15"A"A"A"K"K"M"MHE&(ABB 

//h///// :::: 6 
 
 ~##fV]E2233Lr!   r1   r)   r*   c               V   |d u}|r$t          |           dvrt          d|  d          t          | t                    rZ| j        t
          j        t
          j        t
          j        t
          j	        t
          j
        fv r| j        j                                        S | j        t
          j        k    r|rdndS | j        t
          j        k    r|rdndS | j        t
          j        k    rdS | j        t
          j        k    rdS | j        t
          j        k    r|rd	ndS | j        t
          j        k    r|rd
ndS | j        t
          j        k    rdS | j        t
          j         k    rdS | j        t
          j        k    r|rdndS | j        t
          j        k    rdS n}t          | t*                    rt          | j                  dk    rdS t          | j                  dk    rdS t          | j                  dk    rdS |s|dv rt/          | j        d d |          dz   S t/          | j        |||          S t          | t0                    rt          | j                  dk    r| j        d| j         dndS t          | j                  dk    rdS t          | j                  dk    rd S t          | j                  d!k    rd"S t          | j                  d#k    rd$S t          | j                  d%k    r|rd&nd"S t          | j                  d'k    rd(S 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+  memoryformatr4   optionalTensorr   	generatorz	Dimname[]toDimnameListOptional)Nr7   r9   r:   r1   Optionalztensorlist_n<r   
tensorlistr   list_of_optional_tensorsr   dimnamelistr[   intlistr   
doublelistr   
symintlistr   
scalarlistz%' is not supported by PythonArgParser)r%   rs   rX   r   r&   r   r4   r   r   r   r   lowerr   r   r   r[   r   r.   r   r   r   r   rZ   arg_parser_unpack_methodr   ru   )r   r)   r*   r-   has_default_inits        r"   r  r    sf    $4/ 
TCFF 	+ 	 	 RARRRSSS!X H 6MMNMN
 
 
 6;$$&&&Vv(((.>P**LPVv}$$*:H&&HVv)))9Vvz!!9Vv}$$!'6::Y6Vv{""*:H&&HVv|##:Vvz!!<Vv}$$*:H&&HVv***!> + 
A|	$	$ ) qv;;(""##[[K'';[[K''**! 	g 2
 '
 '
 )tFKKKjX
 ,f    
Ax	 	   qv;;(""010B,16,,,,T[[I%%--[[I%% =[[E!!9[[G##<[[H$$#)8<<y8[[H$$<
HHHH
I
IIr!   	arg_indexr[   c                   |j         d u}t          |j        |j        |j         |          }|r
d|j          nd}d| d|  | d}t	          |j        || |          S )N)r   r)   r*   r-   rN   r2   z_r.rM   rR   )r&   r   r   r   )r*   r  r'   r)   r   r&   )r  ro   r-   has_defaultunpack_methodr)   r   s          r"   arg_parser_output_exprr  P  s     .,K,
&!)!.  M (3:#1>###G6666G666D$V	   r!   $dict[str, PythonArgParserOutputExpr]c               ^    fdt          |                                           D             S )Nc                J    i | ]\  }}t          ||           }|j        | S )r1   )r  r&   )rn   iro   er-   s       r"   
<dictcomp>z+arg_parser_output_exprs.<locals>.<dictcomp>f  sE       Aq(Af===A 	
  r!   )	enumerater   )rh  r   r-   s     `r"   arg_parser_output_exprsr  c  s>       bllnn--   r!   r  r  r  r  )r*  r,  r+  r-  r  c               6   t          | ||          }t          | ||          }g }i t          |          }|                     d          D ]}|j        }||j                 j        }	|r&|dk    r |                    d|	 dg           ||<   Dt          |t                    rtt          |j
                  dk    r\|j                                        rC|                    d|	 dg           t          |j
                  D ]\  }
}d	|
 d
|j        <   t          |j                  dk    r/|                    d| d|	 dd| d| d| dg           ||<   |	|<   | j        rdd<   d | j        D             |rj|j                                        rt%          |j         d          | j        D ]}|j        t&          vrt%          |j         d|j         d          t          |j                  t&                              |j                  k    r4t%          |j         dt          |j                   d|j         d          t+          fdt&          D                       st%          |j         d           |                    d|d         j         d|d         j         d|d          j         d!|d"         j         d#|d$         j         d%           d&d&<   |srdv r|j                                        s!t%          |j         d'|  d(| j                   t+          fd)d*D                       st%          |j         d+          |                    d,|d-         j         d.|d         j         d/|d         j         d.|d          j         d/|d         j         d.|d         j         d0           d"vrt%          |j         d1 d
          t1          t3          fd2|D                       |3          S )4Nr1   T)r   r3   zauto self = ;rO   zauto out = zout[rJ   z
Dimname[]?zauto __rV   z::std::optional<DimnameList> z = __z& ? ::std::make_optional(DimnameList(__z.value())) : ::std::nullopt;c                    g | ]	}|j         
S r    r  rm   s     r"   r   z)dispatch_lambda_exprs.<locals>.<listcomp>  s     H H HA H H Hr!   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 V  	d S rj   r    rn   ro   tensor_options_args_namess     r"   rp   z(dispatch_lambda_exprs.<locals>.<genexpr>  s)      QQa111QQQQQQr!   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);
optionsz3: dtype in tensor_options_args without output arg, r<   c              3      K   | ]}|v V  	d S rj   r    r  s     r"   rp   z(dispatch_lambda_exprs.<locals>.<genexpr>  s)      TT!q55TTTTTTr!   )r+  r,  z,: incomplete tensor options for output checkzcheck_out_type_matches(rH   rN   z,
                       z);
zE: expected "requires_grad" in tensor_options_args absent, but found [c              3  2   K   | ]}|j                  V  d S rj   r  )rn   ro   lambda_args_exprss     r"   rp   z(dispatch_lambda_exprs.<locals>.<genexpr>  s+      CC!%af-CCCCCCr!   )r   r   )r  rv  r   r   r&   r   r   rX   rY   rq   rf   r   r  r  r%   r'   r,   r}   rs   TENSOR_OPTIONS_FIELDSr@   rE  r   r   r   r   )rh  r   r-   arg_parser_outputslambda_argsr   has_toptionsro   r&   arg_parser_exprr  out_argr  r  s               @@r"   dispatch_lambda_exprsr  x  s    1QvFFF&r1V<<<KE(*%a((L \\d\33 '6 '6v,QV49 #	6DFNNLL5?555  
 '+d##q+,,	6AI""  "" # LL4/444  
 (	22 > >
72=+++!',//>[[L(( LL9d99999 ND  N  Nt  N  Nko  N  N  N   '+d## '6d## 
y +$*&! !I H1G H H H 16 	L!&JJJKKK' 	 	Av222"viiAFiii   16{{377????"vffCKKff]^]cfff   @ QQQQ;PQQQQQ 	6XX=VXX   	w',   ).   ).	 
 '7<  '|49  
	
 
	
 
	
 (1)$  5 ///6##%% "veeRTeeWYWcee   TTTT?STTTTT "vKKK   LL*516 :LW:U:Z *73@ DVW_D`De  +849  >PPX=Y=f     ";;;6||`y|||   'CCCC{CCCCC   r!   )r   r   r,   r.   r/   r   )r   r   r/   r.   )r   r   r   r.   r-   r.   r/   r%   )r   r   r/   r  )ro   r   r/   r$   )r   r   r,   r.   r	  r.   r/   ry   )
r   r   r  r(   r,   r.   r	  r.   r/   ry   )r   r   r/   r@  )r   r   r/   r%   )r   ry   r/   rW  )r   ry   r/   r%   )T)rh  ry   r   r   r-   r.   r/   ri  )r   r   r/   r%   )r   r   r  r  r/   r   )
r   r   r)   r(   r*   r(   r-   r.   r/   r%   )r  r[   ro   r$   r-   r.   r/   r   )rh  ry   r   r   r-   r.   r/   r  )rh  ry   r   r   r-   r.   r/   r   );
__future__r   dataclassesr   typingr   torchgen.apir   torchgen.api.typesr   r   r	   torchgen.genr
   torchgen.modelr   r   r   r   r   r   r   r   r   r   collections.abcr   r   r$   rY   ry   r   r   r   r   r   r   r   r   r>   r  r   r   r  rF  rW   rU  re  r   rv  r  r  r  r  r  r  r  r  r  r    r!   r"   <module>r     sl   " " " " " " ! ! ! ! ! !                   G G G G G G G G G G * * * * * *                         )((((((h $                $Y) Y) Y) Y) Y) Y) Y) Y)x $!C !C !C !C !C !C !C !CH $xU xU xU xU xU xU xU xUz $' ' ' ' ' ' ' 'f $        $'
 '
 '
 '
 '
 '
 '
 '
^ $        $* * * * * * * *0 $       2 9> N N N N N N7 7 7 7 %*$@7 @7 @7 @7 @7 @7F        */E      F F F F F F`. . . .&A A A AH$ $ $ $., , , ,^
 
 
 
l <@)5 )5 )5 )5 )5^   :   :U U U U" 04     R OSYJ YJ YJ YJ YJ YJ~ :>     ( ?C         ?Cy y y y y y y yr!   