
    rh'                       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mZ 	 dA	 	 	 	 	 	 	 dBd
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"dCd#Z'dDd$Z(d!dd%	 	 	 	 	 	 	 dEd&Z)dFd'Z*dGd(Z+d!d!d)	 	 	 	 	 	 	 dHd*Z,d!d!d)	 	 	 	 	 	 	 	 	 dId+Z-dJd,Z.dKd-Z/dKd.Z0dLd/Z1dMd0Z2	 dN	 	 	 	 	 	 	 dOd1Z3h d2Z4dPd3Z5dPd4Z6d	d5	 	 	 	 	 dQd6Z7dd7	 	 	 	 	 	 	 	 	 dRd8Z8dd7	 	 	 	 	 	 	 dSd9Z9dd7	 	 	 	 	 	 	 dTd:Z:d;d<d=d>d>d?Z;dd7	 	 	 	 	 	 	 dUd@Z<y	)V    )annotations)	dataclass)TYPE_CHECKING)cpp)BindingCppSignatureCppSignatureGroup)pythonify_default)
ArgumentBaseTyBaseTypeFunctionSchemaListTypeNativeFunctionOptionalTypeReturnTypeVariant)IterableSequenceNc                   t        |t        t        f      st        |      }|d| nd}d|  ddj                  |       d| d}t	        |      dk  st	        |      d	k(  st        |      d
k(  r|S d|  dgd |D        d| d}dj                  |      }t        d |D              r|S |j                  d      dz   S )Nz ->  zdef (, ): ...P   r   selfc              3  (   K   | ]
  }d | d  yw)z    ,N ).0args     f/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/torchgen/api/python.py	<genexpr>z,format_function_signature.<locals>.<genexpr>   s     	-CDQ-	-s   
c              3  8   K   | ]  }t        |      d k    yw)r   N)len)r#   lines     r%   r&   z,format_function_signature.<locals>.<genexpr>   s     
-t3t9?
-   z ...z  # fmt: skip
    ...)
isinstancelisttuplejoinr)   allremovesuffix)name	argumentsreturn_typesigliness        r%   format_function_signaturer7      s     i$/)$	*5*AD&rKa		),-Q{m5
AC
3x2~Y1,i0@I0M
 tfA	-9	- K=E
 ))E
C

-u
--
 F#&>>>    T)frozenc                      e Zd ZU ded<   y)PythonReturnstuple[Return, ...]returnsN__name__
__module____qualname____annotations__r"   r8   r%   r;   r;      s    r8   r;   c                  `    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y)PythonArgumentstrr2   r   type
str | Nonedefaultdefault_initFTmethodsymintc               2   t        | j                  |      j                  dd      j                  dd      }| j                  }|dk(  r|dv r|sd}| j                  5ddddd	j                  | j                  | j                        }| d
| d| S | d
| S )NrL   zconst r   z &r   )TensorNumberinputNone)nullptr::std::nulloptstd::nullopt{} =)argument_type_strrF   replacer2   rH   get)r   rK   rL   type_strr2   rH   s         r%   argument_strzPythonArgument.argument_str   s    dii7WXr"WT2 	 yy 6>h*>>vD <<#!"( &	
 c$,,-  Zqay11Zq''r8   rK   
deprecatedc          	     8   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j                  dd      }|xr! t	        | t
              xr | j                  d	k(  }| j                  |st	        | j                  t              r| j                  j                  t        t        j                        k(  r| j                  j                  d
      rg| j                  j                  d      rLddj                  t        t         j"                  | j                  dd j%                  d                  z   dz   }n-d	d	d	d	dddj'                  | j                  | j                        }| d| d| S | d| S )Nr   rO   rQ   from_out | None | None | NonerR   {}r   r      r!   r   contiguous_formatper_tensor_affine)rS   rT   rU   rV   zc10::MemoryFormat::ContiguouszQScheme::PER_TENSOR_AFFINE:  = )argument_type_str_pyirF   r2   rZ   r,   PythonOutArgumentrH   r   elemr   r   int
startswithendswithr/   maprE   stripsplitr[   )r   rK   r_   r\   r2   treat_as_no_defaultrH   s          r%   argument_str_pyizPythonArgument.argument_str_pyi  s    )3yy 6>h(26*D6>CKD 5=X1*"7+334DiPH  '4!23'& 	 <<#,?499h/IINNhvzz&::LL++C0LL))#. $))C		4<<"3E3K3KC3P$QRRUXX 
  &&,$* 5H2E #dllDLL1  V2hZs7)44V2hZ((r8   N)rK   boolrL   ry   returnrE   )rK   ry   r_   ry   rz   rE   )r?   r@   rA   rB   r]   rx   r"   r8   r%   rD   rD      sJ    
I
J  .34 (6 !&%0)0)370)	0)r8   rD   c                  *    e Zd ZU ded<   edd       Zy)ro   tuple[PythonArgument, ...]outputsc                >   | 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      )	Nrh   r   rR   )r2   rF   rH   rI   r}   c              3  R   K   | ]  }|j                   j                           ! y wNrF   is_tensor_liker#   as     r%   r&   z1PythonOutArgument.from_outputs.<locals>.<genexpr>^  s      @1qvv,,..@s   %'zUnsupported output type: rc   z!Unexpected PythonOutArgument size)r)   ro   r2   rF   anyRuntimeErrorr   r   r   rO   AssertionError)r}   sizes     r%   from_outputszPythonOutArgument.from_outputsO  s    7|19$QZ__QZ__!  AX@@@"%>wi#HII$hv}}5t<!  ABBr8   N)r}   r|   rz   PythonOutArgument | None)r?   r@   rA   rB   staticmethodr   r"   r8   r%   ro   ro   F  s     ('C Cr8   ro   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y) PythonSignaturerE   r2   r|   
input_argsinput_kwargsr   output_argsr;   r=   tensor_options_argsry   rK   c                     y)NFr"   r   s    r%   r_   zPythonSignature.deprecated  s    r8   F)skip_outputsskip_tensor_optionsc                  g }|j                  | j                         |j                  | j                         | j                  |s|j	                  | j                         |s|j                  | j
                         t        |      S r   )extendr   r   r   appendr   r.   )r   r   r   results       r%   r3   zPythonSignature.arguments  sj     <>doo&d''('MM$**+"MM$223V}r8   c                4    t        | j                               S r   )r)   r3   r   s    r%   arguments_countzPythonSignature.arguments_count  s    4>>#$$r8   c                X    t        | j                        t        | j                        z   S r   )r)   r   r   r   s    r%   
output_idxzPythonSignature.output_idx  s!    4??#c$*;*;&<<<r8   Tr   rL   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r   rJ   *r   r   r   )r3   r]   rK   r)   r   insertr2   r/   )r   r   rL   argsr   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               l   | j                  |      }|D cg c]  }|j                  | j                          }}t        | j                        }t        |      |kD  r|j                  |d       t        |       }| j                  r|j                  dd       t        | j                  ||      S c c}w )Nr   rK   r   r   r   	r3   rx   rK   r)   r   r   returns_str_pyir7   r2   r   r   r   r   r   r   returns_strs          r%   signature_str_pyiz!PythonSignature.signature_str_pyi  s    ~~<~8<@%
78Adkk2%
 %
 doo.~0!!/37 &d+;;!!!V,(NKPP%
s   #B1c               P   | j                  |      }|D cg c]  }|j                  | j                          }}| j                         }|dk(  ry t	        | j
                        }|d   j                  }t        |t              rt        |j                        dv r|dk(  sy t        |t              sJ d|d   j                  z   dz   t        |j                        z   |d<   t        |       }| j                  r|j                  dd       t        | j                  ||      S c c}w )	Nr   r   r   )rq   SymIntrh   r   rl   r   )r3   rx   rK   r   r)   r   rF   r,   r   rE   rp   r2   rn   r   r   r7   )	r   r   r   r   r   num_argsnum_positionalargsvararg_typer   s	            r%   signature_str_pyi_varargz(PythonSignature.signature_str_pyi_vararg  s   ~~<~8<@%
78Adkk2%
 %
 '')q= 11gll{H-K$$%)::"a' +x000$q',,%(=k>N>N(OO 	q &d+;;!!!V,(NKPP;%
s   #D#Nrz   ry   )r   ry   r   ry   rz   z.tuple[PythonArgument | PythonOutArgument, ...])rz   rq   r   ry   rL   ry   rz   rE   r   ry   rz   rE   r   ry   rz   rG   )r?   r@   rA   rB   propertyr_   r3   r   r   r   r   r   r"   r8   r%   r   r   k  s     I +* -,))  43 L  ',
#
BF
	7
%= 5:$ 	; 9> Q  @E  Qr8   r   c                  `    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y)PythonSignatureDeprecatedr   deprecated_schematuple[str, ...]deprecated_args_exprsc                     y)NTr"   r   s    r%   r_   z$PythonSignatureDeprecated.deprecated      r8   FTr   c               8    t         j                  | ||      dz   S )Nr   z|deprecated)r   r   )r   r   rL   s      r%   r   z'PythonSignatureDeprecated.signature_str  s+    ))< *  	
r8   r   c               2   | j                  |      }|D cg c]  }|j                  | j                  d      ! }}t        | j                        }t        |      |kD  r|j                  |d       t        |       }t        | j                  ||      S c c}w )Nr   Tr^   r   r   r   s          r%   r   z+PythonSignatureDeprecated.signature_str_pyi  s    ~~<~8MQ%
HIAdkkdC%
 %
 doo.~0!!/37%d+(NKPP%
s   $Bc                    y r   r"   )r   r   s     r%   r   z2PythonSignatureDeprecated.signature_str_pyi_vararg  r   r8   Nr   r   r   r   )	r?   r@   rA   rB   r   r_   r   r   r   r"   r8   r%   r   r     sG     &% +*  5:$ 
 9> 
Q @E r8   r   c                  "    e Zd ZU ded<   ded<   y)!PythonSignatureNativeFunctionPairr   	signaturer   functionNr>   r"   r8   r%   r   r     s    r8   r   c                  J    e Zd ZU ded<   ded<   ded<   e	 	 	 	 	 	 d	d       Zy)
PythonSignatureGroupr   r   r   basezNativeFunction | Noneoutplacec                :   |"t        |j                  |j                  d       S |j                  j                  j	                         }|j                  j
                  |d<   t         t        |j                        di ||j                  |j                        S )N)r   r   r   r   r"   )r   r   r   __dict__copyr   rF   )cls
functionalrc   signature_kwargss       r%   
from_pairszPythonSignatureGroup.from_pairs1  s     ;'$..((  ==11668
   44 	./ $)d3==)=,<=$$\\
 	
r8   N)r   r   rc   z(PythonSignatureNativeFunctionPair | Nonerz   r   )r?   r@   rA   rB   classmethodr   r"   r8   r%   r   r   $  sH    
   $#
5
 6
 
	
 
r8   r   c                  ,    e Zd ZU ded<   ded<   ded<   y)DispatchLambdaArgumentrE   r2   r\   ry   
is_out_argNr>   r"   r8   r%   r   r   T  s    
IMr8   r   c                  H    e Zd ZU ded<   ded<   ded<   ded<   ed
d       Zy	)PythonArgParserOutputExprrE   r2   exprrq   indexrD   argumentc                "    d| j                    dS )Nz
_r.isNone(r   )r   r   s    r%   is_none_exprz&PythonArgParserOutputExpr.is_none_expro  s    DJJ<q))r8   N)rz   rE   )r?   r@   rA   rB   r   r   r"   r8   r%   r   r   `  s1     I I J * *r8   r   c                  "    e Zd ZU ded<   ded<   y)DispatchLambdaArgumentExprszSequence[str]exprsinitsNr>   r"   r8   r%   r   r   y  s      r8   r   Fr   c               D    t        j                  | |      j                  S )Nr   )r	   from_native_functionr   )frK   s     r%   _cpp_signaturer     s    11!FCMMMr8   c                F    | j                   j                  j                  d uS r   )funcr3   tensor_options)r   s    r%   has_tensor_optionsr     s    66**$66r8   simple_typerL   c                  t        | t              rQ| 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*              rt-        | j.                  ||      }| dS t        | t0              r6|s| j2                  nd }t        | j.                        dk(  r| j2                  J d| j2                   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 t-        | j.                  ||      }d| dS t5        dt7        |              )Nint64_tdoublezc10::string_viewr   ?ry   z::std::array<bool,>rq   zIntArrayRef[]IntArrayRefr   zSymIntArrayRef[SymIntArrayRefrO   zTensorList[
TensorListScalarzScalarList[
ScalarListTensor?z"c10::List<::std::optional<Tensor>>z*const c10::List<::std::optional<Tensor>> &DimnamezDimnameList[DimnameListz	ArrayRef<unrecognized type )r,   r   r2   r   rq   floatrE   rO   ry   QSchemer   
ScalarType	GeneratorStorageLayoutDeviceDeviceIndexMemoryFormatr   Streamr   r   rY   rp   r   r   r   repr)tr   rL   rp   r   s        r%   rY   rY     s    !X66VZZVVv||#VVvzz!%VVMMKKNNMMNNMMMMNNMMMM
 
" 66;;	A|	$ [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%;C[I%-1-=\$q)P=P [P4&""
+DG95
66r8   c                p    | j                         }|$t        |j                        dk7  r|j                  S y )Nry   )is_list_likerE   rp   r   )r  ls     r%   argument_type_sizer    s.    	A}QVV.vvr8   c                    t        | j                  | j                  | j                  Dt	        t        t        j                  | j                  | j                  d                  d       S d d       S )NFrN   r2   rF   rH   rI   )rD   r2   rF   rH   rE   r
   r   default_expr)r   s    r%   r   r     sg    VVVV yy$ !#"2"2199affU"STU 
 
 
 
r8   )rK   pyic               H    t        | j                  | j                  ||      S )N)category_overriderK   r  )signature_from_schemar   r  )r   rK   r  s      r%   r   r     s$     !	!"5"5f# r8   c          
     4	    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|ra|s^d fd}|j	                  t1        dt3        t5        t6        j8                              d|rd n |d                   |j	                  t1        dt3        t5        t6        j:                              d|rd n |d                   |j	                  t1        dt3        t5        t6        j<                              d|rd n |d      xs d             |j	                  t1        dt3        t5        t6        j>                              dd              |j	                  t1        dt3        t5        t6        j>                              dd              tA         j(                        }tC        tE         j                  j                        ||tF        jI                  |      t        |      ||      S c c}w c c}w c c}w )Nc                     | j                   v S r   r2   )r   input_arg_sets    r%   <lambda>z'signature_from_schema.<locals>.<lambda>  s    aff6M r8   c                     | j                   v S r   r  )r   kwarg_only_sets    r%   r  z'signature_from_schema.<locals>.<lambda>  s    qvv'? r8   c                     | j                   v S r   r  )r   out_arg_sets    r%   r  z'signature_from_schema.<locals>.<lambda>  s    166[3H r8   c              3  P   K   | ]  }|j                   j                            y wr   r   r   s     r%   r&   z(signature_from_schema.<locals>.<genexpr>(  s"      $%   $&c              3  :   K   | ]  }|j                   d k(    yw)requires_gradNr  r   s     r%   r&   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r   r   r#   rs     r%   r&   z(signature_from_schema.<locals>.<genexpr>2  s     JAFF113Jr  factory)newlikenew__likedummyc                    j                   j                  }|y t        ||       }|j                  |j                  dk(  ry t	        j
                  |j                  |j                  d      S )NrR   FrN   )r3   r   getattrrH   r   r  rF   )r2   	topt_argsr   r   s      r%   topt_default_initz0signature_from_schema.<locals>.topt_default_initB  s\    55I 	4(Ayy AII$7##AIIqvveDDr8   dtyperR   r
  layoutdevicez$torch::tensors::get_default_device()
pin_memoryFalser  )r=   )r2   r   r   r   r   r=   rK   )r2   rE   rz   rG   )%r   r3   pre_self_positionalself_argr   r   post_self_positionalpre_tensor_options_kwarg_onlypost_tensor_options_kwarg_onlyrc   flat_positionalr2   flat_kwarg_onlyr.   rt   filterr   flat_non_outschema_order_arguments
ValueErrorr=   r   rr   rs   rD   r   r   r   r   r   r   ry   r;   r   rE   ro   r   )r   r  rK   r  r   r   r   r   r}   has_tensor_input_arghas_tensor_returnr2   is_factory_functionis_like_or_new_functionis_dummy_functionr   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 	""!(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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 )Nrh   c              3  8   K   | ]  }|j                   d u   y wr   r  r  s     r%   r&   z'structseq_fieldnames.<locals>.<genexpr>  s     @1$@r+   c              3  8   K   | ]  }|j                   d u   y wr   r  r  s     r%   r&   z'structseq_fieldnames.<locals>.<genexpr>  s     /!qvv~/r+   z)Unnamed field is not supported by codegen)r)   r0   r   r9  rE   r2   )r=   r  s     r%   structseq_fieldnamesrB    sX    
7|qC@@@	/w// HII%,-AFF---s   A#c                   d}t        | t              r| j                  } d}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}nh| j                  t
        j                  k(  rd}nG| 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}n?| j                  t
        j(                  t
        j*                  t
        j,                  fv r| j                  j                  }nt        | t.              rt        | j                        dk(  r| j0                  dnd}n| j3                         rd}| j0                  dnd}nt        | j                        dk(  rd}nut        | j                        dk(  r*| j0                  t5        | j                        }| d| d}n3t5        | j                        }d| d}nt7        dt9        |              |r| dj;                  dd      }|S )NFTr   _intz_int | SymInt_floatrE   zNumber | _complex_dtype_bool_qscheme_layoutzDeviceLikeType | Nonememory_formatzstr | EllipsisType | NonezStorage | UntypedStoragerq   z_int | _size_sizez*Tensor | tuple[Tensor, ...] | list[Tensor]z!tuple[Tensor, ...] | list[Tensor]r   zSequence[_float]r   z | Sequence[r   z	Sequence[r   rd   re   )r,   r   rp   r   r2   r   rq   r   r   r   rE   r   r   ry   r   r   r   r  r   r   rO   r   r  r   r   r   rn   r   r  rZ   )r  add_optionalretrp   s       r%   rn   rn     sx   L!\"FF
C!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~~%,CVVv'7'7GG&&++C	Ax	 qvv;%$%FF$6.GC  L 66% =8 
 [G#$C[H$);(0DF,tfA.C(0DdV1%C /Qy9::Wo%%&6	BJr8   c                   t        | t              r*t        | j                        }| dj	                  dd      S t        | t
              rG| j                  t        j                  k(  ry| j                  t        j                  k(  ryt        |       S t        | t              rt        | j                        }d| dS t        |       S )Nrd   re   _devicerG   tuple[z, ...])r,   r   return_type_str_pyirp   rZ   r   r2   r   r   r   rn   r   )r  inners     r%   rQ  rQ    s     !\"#AFF+ (()99EE!X66V]]"VVv~~%(++!X#AFF+wf%% ##r8   c                   | j                   j                   D cg c]  }t        |j                         }}| j                  }t	        | j                   j                         }|rddj                  |       d}d| d| dg}t        ||      D ]  \  }}|j                  dd| d	| d
g       ! |j                  ddd| ddddt        |       dt        |       dddg
       dj                  |      }	||	fS y c c}w )NrP  r   r   zclass r   z):  # fmt: skipz    @propertyz    def z
(self) -> r   z    def __new__(z        cls,z        sequence: r!   z    ) -> Self:  # fmt: skipz        ...z    n_fields: Final[_int] = z%    n_sequence_fields: Final[_int] = z%    n_unnamed_fields: Final[_int] = 0zG    def __init_subclass__(cls) -> NoReturn: ...  # prohibit subclassingr   r'   )	r=   rQ  rF   r2   rB  r/   zipr   r)   )
r   r  python_returnsstructseq_namefield_namesseq_typestructseq_def_linesr2   ret_typestructseq_defs
             r%   returns_structseq_pyir\    sD   ;D;L;L;T;TUa)!&&1UNU^^N&y'8'8'@'@AK DIIn56a8^$AhZ?
 "+~> 	ND(&&#tfJxj>	 	"""$XJa0-.s;/?.@A7K8H7IJ7Y	
 		"56$ },,g Vs   C>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.rh   rP  r   r   r   rR   )rB  r=   r2   rQ  rF   r)   r/   )r   rW  r  rU  s       r%   r   r   9  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 c                R    t         t              r j                  }n|j                  }t	        j
                  |j
                  d|d|j                        }|j
                  j                  D ch c]  }|j                   c}d fd}t        t        ||            S c c}w )NF)r3   faithfulrL   rK   cpp_no_default_argsc                    | j                   }| j                  v }j                  r| j                  dk(  rd}n)t              dk  xs | }|rddij	                  ||      }t        | j                  ||      S )Nr   zconst at::Tensor &rh   zat::Tensor &
at::Tensor)r2   r\   r   )rF   r2   rK   r)   r[   r   )cpp_argr\   r   ensure_temp_safeout_argspss       r%   dispatch_lambda_argz1dispatch_lambda_args.<locals>.dispatch_lambda_arg  s    <<\\X-
99/+H  #8}1C^"L#h)  &!
 	
r8   )rc  r   rz   r   )r,   r   r   r   r   r3   r`  rc   r2   r.   rt   )rf  r   rL   schemacpp_argsr   rg  re  s   `      @r%   dispatch_lambda_argsrj  n  s     "/0%% }}""11H +1*:*:*>*>?Q!&&?H
, ((3443 @s   2B$>   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>ry   voidr   r   rb  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r   )r   r2   rF   r  s     r%   r&   z-dispatch_lambda_return_str.<locals>.<genexpr>  s&      ')*qvvqvvt$'s   +-TrN   z returns unsupported type )	r.   r   r=   r   returns_typecpp_typeSUPPORTED_RETURN_TYPESr   r2   )r   returns_without_annotation
return_strs      r%   dispatch_lambda_return_strr    sp    ( "' './ffnn' " !!"<TJSSUJ//affkk]*DZLQRRr8   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   r2   r   rK   variantsr   r   r   rs   r   )r   rL   r2   	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Tr8   )python_signaturec               B    t         d      j                         }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  4   K   | ]  }|j                     y wr   r  r   s     r%   r&   z%cpp_dispatch_exprs.<locals>.<genexpr>  s     /aff/s   c                F    | dk7  xs j                   j                         S )Nrc   )r   	is_out_fn)nr   s    r%   r  z$cpp_dispatch_exprs.<locals>.<lambda>  s    !u*:(8(8(: r8   r   )r   r3   r,   r   r.   r6  r   r   rK   r  __ne__)r   r  ri  r   s   `   r%   cpp_dispatch_exprsr    s    
 #15"A"K"K"MHE&(AB/h// : 66
 ~~#fV]]E23Lr8   rN   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?ry   bool?ztype 'z+' does not supported unpacking with defaultscalartypeWithDefault
scalartypedeviceWithDefaultr,  toInt64toSymInttoBoolWithDefaulttoBooltoDouble
stringViewlayoutWithDefaultr+  memoryformatrO   optionalTensorr   	generatorz	Dimname[]toDimnameListOptional)NrR   rT   rU   rN   Optionalztensorlist_n<r   
tensorlistr   list_of_optional_tensorsr   dimnamelistrq   intlistr   
doublelistr   
symintlistr   
scalarlistz%' is not supported by PythonArgParser)rE   r   r,   r   r2   r   rO   r  r   r   r   lowerr   r   r   rq   r   ry   r   r   r  r   rp   arg_parser_unpack_methodr   r   )r  rH   rI   rL   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'*!g 2
 '
 )tFKjX
 ,f  
Ax	 qvv;("010B]166(!,TT[I%-[I% [E![G#[H$#)<8y8[H$
s"GH
IIr8   c                   |j                   d u}t        |j                  |j                  |j                   |      }|rd|j                    nd}d| d|  | d}t	        |j
                  || |      S )N)r  rH   rI   rL   r   r   z_r.r   r   )r2   r   r   r   )rI   r  rF   rH   r   r2   )	arg_indexr   rL   has_defaultunpack_methodrH   r   s          r%   arg_parser_output_exprr  k  s}     ..,K,
&&!))!..M (31>>"#GqG9A6D$VV	 r8   c          
         t        | j                               D ci c]   \  }}t        |||      }|j                  |" c}}}S c c}}}w )NrN   )	enumerater3   r  r2   )rf  r   rL   ir   es         r%   arg_parser_output_exprsr  ~  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&        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rdv r|j                  j                         s't%        |j                   d&|  d'| j                         t+        fd(d)D              st%        |j                   d*      |j-                  d+|d,   j
                   d-|d   j
                   d.|d   j.                   d-|d   j
                   d.|d   j
                   d-|d   j.                   d/       d!vrt%        |j                   d0 d
      t1        t3        fd1|D              |2      S c c}w )3NrN   T)r   r   zauto self = ;rh   zauto out = zout[r   z
Dimname[]?zauto __rm   z::std::optional<DimnameList> z = __z& ? ::std::make_optional(DimnameList(__z.value())) : ::std::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r   r"   r#   r   tensor_options_args_namess     r%   r&   z(dispatch_lambda_exprs.<locals>.<genexpr>  s     Qa111Q   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, rW   c              3  &   K   | ]  }|v  
 y wr   r"   r  s     r%   r&   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(rc   r   z,
                       z);
zE: expected "requires_grad" in tensor_options_args absent, but found [c              3  <   K   | ]  }|j                        y wr   r  )r#   r   lambda_args_exprss     r%   r&   z(dispatch_lambda_exprs.<locals>.<genexpr>
  s     C!%aff-Cs   )r   r   )r  rj  r   r3   r2   r   r   r,   ro   r)   r}   r   r  r  rE   rF   rK   r   r   TENSOR_OPTIONS_FIELDSr[   r0   r   r   r   r.   )rf  r   rL   arg_parser_outputslambda_argsr   has_toptionsr   r2   arg_parser_exprr  out_argr  r  s               @@r%   dispatch_lambda_exprsr    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3D6tfDjkojp  qM  N '+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 	 Q;PQQ66(<=V<WX  	w',,- .)../ 0)../ 0&7<<= >&|499: ;
	
 (1)$ 5//66##%"vvhQRTQUUVWYWcWcVde  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 u !Is   ?Q)r"   N)r2   rE   r3   zIterable[str]r4   rG   rz   rE   )r   r   rK   ry   rz   r   )r   r   rz   ry   )r  r   r   ry   rL   ry   rz   rE   )r  r   rz   z
int | None)r   r   rz   rD   )r   r   rK   ry   r  ry   rz   r   )
r   r   r  rG   rK   ry   r  ry   rz   r   )r=   r<   rz   z	list[str])r  r   rz   rE   )r   r   rz   ztuple[str, str] | None)r   r   rz   rE   )T)rf  r   r   r   rL   ry   rz   z"tuple[DispatchLambdaArgument, ...])r   r   rz   rE   )r   r   r  zPythonSignature | Nonerz   r   )
r  r   rH   rG   rI   rG   rL   ry   rz   rE   )r  rq   r   rD   rL   ry   rz   r   )rf  r   r   r   rL   ry   rz   z$dict[str, PythonArgParserOutputExpr])rf  r   r   r   rL   ry   rz   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   r7   r;   rD   ro   r   r   r   r   r   r   r   r   r   rY   r  r   r   r  rB  rn   rQ  r\  r   rj  r  r  r  r  r  r  r  r  r  r"   r8   r%   <module>r     s   " !    G G *   2j IM?
?'?;E??0 $      $Y) Y) Y)x $!C !C !CH $vQ vQ vQv $' ' 'f $   $'
 '
 '
^ $   $* * *0 $  2 9> N7 %*$<7<7!<737<7<7~  */E"&59 F
F "F 	F
 
F F`.&BJ$.4n
l <@)5)5*)548)5')5^ ::U" 04 - 	R OSYJYJ YJ0:YJGKYJYJ~ :>%26( ?C*7;)   ?Cyy*y7;y yr8   