
    '}h%                     F   d dl Z d dlmZmZ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edefd	Zd
dddedededededefdZd
dddededededef
dZdddee   dede
fdZdedee   fdZd
dddededede	fdZdddededee	   fdZy)    N)ListSequenceUnion)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_never	concatMapfuncreturnc                 ,    t        j                  |       S N)r   name)r   s    V/var/www/html/test/engine/venv/lib/python3.12/site-packages/torchgen/api/dispatcher.pyr   r   !   s    88D>    FT)remove_non_owning_ref_typessyminttmutablebindsr   r   c                6    t        j                  | ||||      S )N)r   r   r   r   )r   argumenttype_type)r   r   r   r   r   s        r   r    r    %   s&       	$? r   ac                J    t        | j                  | j                  |||      S )N)r   r   r   r   )r    typeis_write)r!   r   r   r   s       r   argument_typer%   :   s(     	

$? r   r   rsc                0    t        j                  | |      S Nr&   )r   returns_type)r'   r   s     r   r*   r*   J   s    Bv..r   c           
          dt         t        t        t        f   dt        t           fd}t        t        |t        j                  | j                  j                  | j                  j                  | j                  j                                    S )Nr!   r   c                     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_argumentP   s\     a"3J<(JJ<12GGQXXqxx>>Or   )r   r   r   r   r   listr   	itertoolschain	arguments
positional
kwarg_onlyout)r   r3   s     r   jit_argumentsr;   O   ss    
1<?@
	h
 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.   f   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   u   s"    0=d0CD1HQv&DDDs   %)r5   typingr   r   r   torchgen.apir   torchgen.api.typesr   r   r	   r
   torchgen.modelr   r   r   r   r   r   torchgen.utilsr   r   strr   boolr    r%   r*   r;   r.   r7    r   r   <module>rG      sK    ( (  B B  3$~ #  ).  	
 "&  2 ).  "&	
    :> /Xf% /$ /% /
 4> 0 9>d15GK 7; EN Et EtG} Er   