
    Χg                         d dl mZ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dS )    )AnyOptionalTuple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dS )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	                  r3t          |                                                                           S t          | t          t          f          rwt          |           dk    sJ d | D             }t          t!          |                    dk    rt#          d| d          t%          |d         t          |                     S t'          |           }|t(          j        vrt#          d|           t	          t(          j        |                   S )Nr   c                 B    g | ]}t                               |          S  )r   from_example).0xs     U/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchgen/gen_schema_utils.py
<listcomp>z(TypeGen.from_example.<locals>.<listcomp>/   s&    AAAG0033AAA       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lensetRuntimeErrorr   typer   convert_to_base_ty)r   r    all_base_tystps       r   r   zTypeGen.from_example   s   c58/00 	7F.///U\** 	7FM***U\** 	7FM***U]++ 	7FN+++U/00 	7"399;;#3#3#5#5666dE]++ 		7s88a<<<<AASAAAL3|$$%%))".]i . . .  
 LOSXX666#YYW///7277888226777r   N)__name__
__module____qualname__intr   floatstrboolr0   staticmethodr   r   r   r   r   r   r   r   r   r   r      sr        VZv|VZfk	 8# 8%(O(K"L 8 8 8 \8 8 8r   r   c            	       N    e Zd Zedee         dedee         defd            Z	dS )	ReturnGenr)   r   
annotationr   c                 T    t          | t                              |          |          S N)r   r   r   )r)   r   r=   s      r   r   zReturnGen.from_example>   s$     dG0055zBBBr   N)
r3   r4   r5   r:   r   r8   r   r   r   r   r   r   r   r<   r<   =   se        CsmC"%C3;J3GC	C C C \C C Cr   r<   c                   R    e Zd Zedededee         dee         def
d            Z	dS )ArgumentGenr)   r   defaultr=   r   c                 X    t          | t                              |          ||          S )N)rB   r=   )r   r   r   )r)   r   rB   r=   s       r   r   zArgumentGen.from_exampleF   s2     '&&s++W
 
 
 	
r   N)
r3   r4   r5   r:   r8   r   r   r   r   r   r   r   r   rA   rA   E   sc        


&.sm
AI*AU
	
 
 
 \
 
 
r   rA   c            	       f    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dS )FunctionSchemaGenop_nameexample_inputs.example_outputsr   c           
         g }|D ]5\  }}|                     t                              ||d d                      6t          t	                      d t	          |          t	                      d t	                      t	                                }t	          d |D                       }t          t          | ddd          d          } t          | ||          S )Nc              3   N   K   | ] }t                               d |d           V  !d S r?   )r<   r   )r   outs     r   	<genexpr>z1FunctionSchemaGen.from_example.<locals>.<genexpr>]   sE       
 
8;I""4d33
 
 
 
 
 
r   F )appendrA   r   r	   r+   r   r
   r   )rF   rG   rH   argsr)   inp	argumentsreturnss           r   r   zFunctionSchemaGen.from_exampleP   s     ' 	I 	IID#KK00sD$GGHHHHGGT5;;uww
 
	  
 
?N
 
 
 
 
 /uMMrRRgy':::r   N)	r3   r4   r5   r:   r8   r   r   r   r   r   r   r   rE   rE   O   sp        ;;eCHos23; sCx; 
	; ; ; \; ; ;r   rE   N)typingr   r   r   r   torchgen.modelr   r   r	   r
   r   r   r   r   r   r   r   r   r<   rA   rE   r   r   r   <module>rU      s^   . . . . . . . . . . . .                         (#8 #8 #8 #8 #8 #8 #8 #8LC C C C C C C C
 
 
 
 
 
 
 
; ; ; ; ; ; ; ; ; ;r   