
    ¯wg8                    
   d dl mZ d dl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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ddZy)    )annotationsN)Sequence)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_never	concatMapc                ,    t        j                  |       S N)r   name)funcs    \/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/torchgen/api/dispatcher.pyr   r   #   s    88D>    FT)remove_non_owning_ref_typessymintc               6    t        j                  | ||||      S )N)mutablebindsr   r   )r   argumenttype_type)tr   r   r   r   s        r   r   r   '   s&       	$? r   c               J    t        | j                  | j                  |||      S )N)r   r   r   r   )r   typeis_write)ar   r   r   s       r   argument_typer#   <   s(     	

$? r   r   c               0    t        j                  | |      S Nr$   )r   returns_type)rsr   s     r   r'   r'   L   s    Bv..r   c           
         	 	 	 	 dd}t        t        |t        j                  | j                  j
                  | j                  j                  | j                  j                                    S )Nc                    t        | t              r| gS t        | t              r| j                  gS t        | t              r.| j
                  | j                  | j                  | j                  gS t        |        y r   )

isinstancer
   r   argumentr   dtypelayoutdevice
pin_memoryr   )r"   s    r   to_argumentz"jit_arguments.<locals>.to_argumentR   s\     a"3J<(JJ<12GGQXXqxx>>Or   )r"   z0Argument | TensorOptionsArguments | SelfArgumentreturnlist[Argument])listr   	itertoolschain	arguments
positional
kwarg_onlyout)r   r1   s     r   jit_argumentsr;   Q   sb    
;
	
 OO))4>>+D+DdnnFXFX	
 r   c               `    t        t        | | j                  ||      | j                  |       S )N)r   r   r   )nctyper   r,   )r   r#   r   )r"   r   r   s      r   r,   r,   h   s5     &&(C	
 VV	 	r   c               T    t        |       D cg c]  }t        ||       c}S c c}w r&   )r;   r,   )r   r   r"   s      r   r7   r7   w   s"    0=d0CD1HQv&DDDs   %)r   r   r2   str)r   r   r   boolr   r   r   r@   r   r@   r2   r	   )
r"   r
   r   r   r   r@   r   r@   r2   r	   )r(   zSequence[Return]r   r@   r2   r   )r   r   r2   r3   )r"   r
   r   r@   r   r@   r2   r   )r   r   r   r@   r2   zlist[Binding])
__future__r   r5   typingr   torchgen.apir   torchgen.api.typesr   r   r   r	   torchgen.modelr
   r   r   r   r   r   torchgen.utilsr   r   r   r   r#   r'   r;   r,   r7    r   r   <module>rH      s    "    B B  3& ).  	
 "&  2 ).  "&	
    :> /
0 9>d15GK 7; Er   