
    Og                         d dl mZmZ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mZ  G d d      Z G d d      Z G d d      Z G d	 d
      Zy)    )AnyOptionalUnion)
AnnotationArgument	ArgumentsBaseOperatorNameBaseTyBaseTypeCustomClassTypeFunctionSchemaListTypeOperatorNameReturnc                       e Zd Zeej                  eej
                  eej                  eej                  iZe	de
deeeef   fd       Zy)TypeGenobjreturnc                    dd l }t        | |j                  j                        rt	        t
        j                        S t        | |j                        rt	        t
        j                        S t        | |j                        rt	        t
        j                        S t        | |j                        rt	        t
        j                        S t        | |j                        r't        | j                         j                               S t        | t        t        f      rpt        |       dkD  sJ | D cg c]  }t         j#                  |       }}t        t%        |            dkD  rt'        d| d      t)        |d   t        |             S t+        |       }|t         j,                  vrt'        d|       t	        t         j,                  |         S c c}w )Nr      zFCannot generate schema for a seqeunce 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lenr   from_examplesetRuntimeErrorr   typeconvert_to_base_ty)r   r   xall_base_tystps        `/var/www/html/suriana-translation/venv/lib/python3.12/site-packages/torchgen/gen_schema_utils.pyr$   zTypeGen.from_example   sw   c588//0F..//U\\*FMM**U\\*FMM**U]]+FNN++U//0"399;#3#3#566dE]+s8a<<=@AG003ALA3|$%)"\]i\j k. . 
 LOSX66#YW///!22$788222677 Bs   2GN)__name__
__module____qualname__intr
   floatstrboolr(   staticmethodr   r   r   r   r   r$        r,   r   r      s\    VZZv||VZZfkk	 8# 8%(O(K"L 8 8r6   r   c            	       :    e Zd Zedee   dedee   defd       Z	y)	ReturnGenr    r   
annotationr   c                 B    t        | t        j                  |      |      S N)r   r   r$   )r    r   r9   s      r,   r$   zReturnGen.from_example>   s     dG005zBBr6   N)
r-   r.   r/   r4   r   r2   r   r   r   r$   r5   r6   r,   r8   r8   =   sC    CsmC"%C3;J3GC	C Cr6   r8   c                   >    e Zd Zedededee   dee   def
d       Z	y)ArgumentGenr    r   defaultr9   r   c                 F    t        | t        j                  |      ||      S )N)r>   r9   )r   r   r$   )r    r   r>   r9   s       r,   r$   zArgumentGen.from_exampleF   s%     '&&s+W
 	
r6   N)
r-   r.   r/   r4   r2   r   r   r   r   r$   r5   r6   r,   r=   r=   E   sE    


&.sm
AI*AU
	
 
r6   r=   c            	       L    e Zd Zededeeeef   df   deedf   defd       Zy)FunctionSchemaGenop_nameexample_inputs.example_outputsr   c           
      J   g }|D ],  \  }}|j                  t        j                  ||d d              . t        t	               d t	        |      t	               d t	               t	                     }t	        d |D              }t        t        | ddd      d      } t        | ||      S )Nc              3   J   K   | ]  }t         j                  d |d         y wr;   )r8   r$   ).0outs     r,   	<genexpr>z1FunctionSchemaGen.from_example.<locals>.<genexpr>]   s$      
8;I""4d3
s   !#F )appendr=   r$   r   r"   r   r	   r   )rB   rC   rD   argsr    inp	argumentsreturnss           r,   r$   zFunctionSchemaGen.from_exampleP   s     ' 	IID#KK00sD$GH	I GT5;uw
	  
?N
 
 /uMrRgy'::r6   N)	r-   r.   r/   r4   r2   r"   r   r   r$   r5   r6   r,   rA   rA   O   sR    ;;eCHos23; sCx; 
	; ;r6   rA   N)typingr   r   r   torchgen.modelr   r   r   r	   r
   r   r   r   r   r   r   r   r8   r=   rA   r5   r6   r,   <module>rR      sJ    ' '   (#8 #8LC C
 
; ;r6   