
    Ogz                       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 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ddZy)    )annotationsN)TYPE_CHECKING)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_never	concatMap)Sequencec                ,    t        j                  |       S N)r   name)funcs    ^/var/www/html/suriana-translation/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(   P   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_argumentV   s\     a"3J<(JJ<12GGQXXqxx>>Or   )r#   z0Argument | TensorOptionsArguments | SelfArgumentreturnlist[Argument])listr   	itertoolschain	arguments
positional
kwarg_onlyout)r   r2   s     r   jit_argumentsr<   U   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-   l   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   r8   r8   {   s"    0=d0CD1HQv&DDDs   %)r   r   r3   str)r   r   r   boolr   r   r   rA   r   rA   r3   r	   )
r#   r
   r   r   r   rA   r   rA   r3   r	   )r)   zSequence[Return]r   rA   r3   r   )r   r   r3   r4   )r#   r
   r   rA   r   rA   r3   r   )r   r   r   rA   r3   zlist[Binding])
__future__r   r6   typingr   torchgen.apir   torchgen.api.typesr   r   r   r	   torchgen.modelr
   r   r   r   r   r   torchgen.utilsr   r   collections.abcr   r   r   r$   r(   r<   r-   r8    r   r   <module>rJ      s    "     B B  3 (& ).  	
 "&  2 ).  "&	
    :> /
0 9>d15GK 7; Er   