
    S j                         S SK Jr  S SKJrJrJrJrJrJrJ	r	J
r
JrJrJr   " S S5      r " S S5      r " S S5      r " S	 S
5      rg)    )Any)
AnnotationArgument	ArgumentsBaseOperatorNameBaseTyBaseTypeCustomClassTypeFunctionSchemaListTypeOperatorNameReturnc                       \ rS rSr\\R                  \\R                  \\R                  \\R                  0r	\
S\S\\-  \-  4S j5       rSrg)TypeGen   objreturnc                    SS K n[        XR                  R                  5      (       a  [	        [
        R                  5      $ [        XR                  5      (       a  [	        [
        R                  5      $ [        XR                  5      (       a  [	        [
        R                  5      $ [        XR                  5      (       a  [	        [
        R                  5      $ [        XR                  5      (       a'  [        U R                  5       R                  5       5      $ [        U [        [        45      (       a~  [        U 5      S:X  a  [!        S5      eU  Vs/ s H  n["        R%                  U5      PM     nn[        ['        U5      5      S:  a  [)        SU S35      e[+        US   [        U 5      5      $ [-        U 5      nU["        R.                  ;  a  [)        SU 35      e[	        ["        R.                  U   5      $ s  snf )Nr   zlist/tuple must be non-empty   zFCannot generate schema for a sequence of args of heterogeneous types: zc. Consider unpacking the argument and give proper names to them if possible instead of using *args.zunsupported type )torch
isinstancefxGraphModuler	   r   TensorSymIntSymBoolScriptObjectr
   _typenamelisttuplelenAssertionErrorr   from_examplesetRuntimeErrorr   typeconvert_to_base_ty)r   r   xall_base_tystps        j/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/torchgen/gen_schema_utils.pyr$   TypeGen.from_example   s   c88//00F..//\\**FMM**\\**FMM**]]++FNN++//00"399;#3#3#566dE]++3x1}$%CDD=@ASG003SLA3|$%)"\]i\j k. . 
 LOSX66#YW///!22$788222677 Bs   G> N)__name__
__module____qualname____firstlineno__intr   floatstrboolr(   staticmethodr   r	   r   r
   r$   __static_attributes__r.       r,   r   r      sZ    VZZv||VZZfkk	 8# 8(X"5"G 8 8r9   r   c            	       D    \ rS rSr\S\S-  S\S\S-  S\4S j5       r	Sr
g)		ReturnGen>   r   Nr   
annotationr   c                 B    [        U [        R                  U5      U5      $ N)r   r   r$   )r   r   r=   s      r,   r$   ReturnGen.from_example?   s     dG005zBBr9   r.   )r/   r0   r1   r2   r7   r5   r   r   r   r$   r8   r.   r9   r,   r;   r;   >   sC    CDjC"C0:T0AC	C Cr9   r;   c                   H    \ rS rSr\S\S\S\S-  S\S-  S\4
S j5       r	S	r
g)
ArgumentGenF   r   r   defaultNr=   r   c                 >    [        U [        R                  U5      X#S9$ )N)rD   r=   )r   r   r$   )r   r   rD   r=   s       r,   r$   ArgumentGen.from_exampleG   s#     '&&s+W
 	
r9   r.   )r/   r0   r1   r2   r7   r5   r   r   r   r$   r8   r.   r9   r,   rB   rB   F   sE    


&)Dj
>H4>O
	
 
r9   rB   c            	       V    \ rS rSr\S\S\\\\4   S4   S\\S4   S\4S j5       r	Sr
g	)
FunctionSchemaGenP   op_nameexample_inputs.example_outputsr   c           
      H   / nU H+  u  pEUR                  [        R                  XES S 5      5        M-     [        [	        5       S [	        U5      [	        5       S [	        5       [	        5       5      n[	        S U 5       5      n[        [        U SSS5      S5      n [        XU5      $ )Nc              3   P   #    U  H  n[         R                  S US 5      v   M     g 7fr?   )r;   r$   ).0outs     r,   	<genexpr>1FunctionSchemaGen.from_example.<locals>.<genexpr>^   s%      
?NI""4d33s   $&F )appendrB   r$   r   r!   r   r   r   )rJ   rK   rL   argsr   inp	argumentsreturnss           r,   r$   FunctionSchemaGen.from_exampleQ   s     'IDKK00D$GH ( GT5;uw
	  
?N
 
 /uMrRg'::r9   r.   N)r/   r0   r1   r2   r7   r5   r!   r   r   r$   r8   r.   r9   r,   rH   rH   P   sR    ;;eCHos23; sCx; 
	; ;r9   rH   N)typingr   torchgen.modelr   r   r   r   r   r	   r
   r   r   r   r   r   r;   rB   rH   r.   r9   r,   <module>r\      sG       ($8 $8NC C
 
; ;r9   