
    Yh                        d dl mZ d dl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mZ d dlmZmZmZmZmZmZ d dlmZ erd d	lmZ d*dZdddd+dZdddd,dZddd-d#Zd.d%Zdddd/d'Zddd0d)ZdS )1    )annotationsN)TYPE_CHECKING)assert_never)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)	concatMap)Sequencefuncr   returnstrc                *    t          j        |           S N)r   name)r   s    i/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torchgen/api/dispatcher.pyr   r   (   s    8D>>    FT)remove_non_owning_ref_typessyminttr   mutableboolbindsr   r   r   r
   c               4    t          j        | ||||          S )N)r   r    r   r   )r   argumenttype_type)r   r   r    r   r   s        r   r"   r"   ,   s-      	$?   r   ar   c               >    t          | j        | j        |||          S )N)r   r    r   r   )r"   typeis_write)r#   r    r   r   s       r   argument_typer'   A   s.     	
$?   r   r   rsSequence[Return]r	   c               .    t          j        | |          S )Nr(   )r   returns_type)r)   r   s     r   r,   r,   Q   s    Bv....r   list[Argument]c           
         dd}t          t          |t          j        | j        j        | j        j        | j        j                                      S )Nr#   0Argument | TensorOptionsArguments | SelfArgumentr   r-   c                    t          | t                    r| gS t          | t                    r| j        gS t          | t                    r| j        | j        | j        | j        gS t          |            d S r   )

isinstancer   r   argumentr   dtypelayoutdevice
pin_memoryr   )r#   s    r   to_argumentz"jit_arguments.<locals>.to_argumentW   sr     a"" 	3J<(( 	J<122 	GQXqx>>OOOOOr   )r#   r/   r   r-   )listr   	itertoolschain	arguments
positional
kwarg_onlyout)r   r7   s     r   jit_argumentsr?   V   s_    
 
 
 
 O)4>+DdnFX 	
 	
  r   r   c               \    t          t          | | j        ||          | j        |           S )N)r    r   r   )nctyper   r2   )r   r'   r   )r#   r   r   s      r   r2   r2   m   sE     &(C	
 
 
 V	 	 	 	r   list[Binding]c               :    fdt          |           D             S )Nc                2    g | ]}t          |           S )r(   )r2   ).0r#   r   s     r   
<listcomp>zarguments.<locals>.<listcomp>}   s&    DDD1HQv&&&DDDr   )r?   )r   r   s    `r   r;   r;   |   s%    DDDDd0C0CDDDDr   )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*   r   r   r   r	   )r   r   r   r-   )r#   r   r   r   r   r   r   r   )r   r   r   r   r   rB   ) 
__future__r   r9   typingr   typing_extensionsr   torchgen.apir   torchgen.api.typesr   r   r	   r
   torchgen.modelr   r   r   r   r   r   torchgen.utilsr   collections.abcr   r   r"   r'   r,   r?   r2   r;    r   r   <module>rP      s   " " " " " "                 * * * * * *       B B B B B B B B B B B B                % $ $ $ $ $  )((((((&    ).     2 ).       :> / / / / / /
   0 9>d      7; E E E E E E E Er   