
    %h              
       `   d dl mZmZmZmZ d dlmZ d dl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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! dede"fd	Z#d
ede$de
de$def
dZ%dee         de$defdZ&dede
de$defdZ'deeeef         de$de$dee         fdZ(dede$dee         fdZ)dS )    )ListOptionalSequenceUnion)local)cpp)ArgName	BaseCTypeBindingboolTConstRefCTypeCTypedeviceTlayoutT	ListCTypeMutRefCType
NamedCTypeOptionalCTypescalarTscalarTypeTtensorT)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_neverfuncreturnc                     t          | j        j                  }|                                 r|dz  }| j        j        r|d| j        j         z  }|S )N_out_)strname	is_out_fnoverload_name)r   r%   s     S/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/torchgen/api/native.pyr%   r%   -   sX    ty~D~~ y .-DI+---K    tmutablebindssymintc                   t          |           dk    rpt          t          t                              }|r0t	          j                    st          |t          |                    S t          |t          |                    S t          |           dk    rIt          |t          t          t          t          t                                                            S t          |           dk    r/t          |t          t          t                                        S t          |           dk    r<t          |t          t          t          t                                                  S t          j        | |||          S )NzTensor?z	Tensor?[]ScalarzScalar?r+   r,   r-   )r$   r   r
   r   r   !use_const_ref_for_mutable_tensorsr   r   r   r   r   r   argumenttype_type)r*   r+   r,   r-   tensor_types        r(   r2   r2   7   sB    1vv%29W3E3E%F%F 	A5BDD 	Ae[%=%=>>>e];%?%?@@@	Q;		==79K9K+L+L!M!MNN
 
 	
 
Q8		%y/A/A!B!BCCC	Q9		%}Yw=O=O/P/P!Q!QRRR G5PPPPr)   rsc                .    t          j        | |          S )Nr-   )r   returns_type)r4   r-   s     r(   r7   r7   K   s    Bv....r)   ac                <    t          | j        | j        ||          S )Nr0   )r2   typeis_write)r8   r,   r-   s      r(   argument_typer<   O   s    QVQZuVTTTTr)   is_outc                   | }t          | t                    rZd }|r(| j        !t          j        | j        | j        |          }t          t          | | j        |          | j        ||           gS t          | t                    rt          | j
        ||          S t          | t                    rd }|rd}t          t          dt          t          t                                        d||           t          t          dt          t          t                                         d||           t          t          dt          t          t"                                        d||           t          t          d	t          t          t$                                        d	||           gS t'          |            d S )
Nr6   )r,   r-   )nctyper%   defaultargument)r=   r-   z{}dtypelayoutdevice
pin_memory)
isinstancer   r@   r   default_exprr:   r   r<   r%   r   rA   r   r   r   r
   r   r   r   r   r   )r8   r=   r-   should_defaultr@   s        r(   rA   rA   S   s     ZN!X 1!% 	Iai3&qy!&HHHG$QafVDDDV	  
 	
 
A|	$	$ %
6&AAAA	A-	.	. " 	G
 !'=;9O9O+P+PQQ	   !(M)G:L:L,M,MNN	   !(M)G:L:L,M,MNN	   !,i>N>N0O0OPP!	  '
 	
6 	Qr)   c                     g }|                      j        j                   |                      j        j                    fd|D             S )Nc                 b    g | ]+}t          |                                           D ]}|,S ))r-   r=   )rA   r&   ).0argrr   r-   s      r(   
<listcomp>zarguments.<locals>.<listcomp>   sS       8Ct~~GWGW#X#X#X    r)   )extend	argumentsnon_outout)r   r-   argss   `` r(   rP   rP      sg    HJDKK&'''KK"###       r)   N)*typingr   r   r   r   torchgenr   torchgen.apir   torchgen.api.typesr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   torchgen.modelr   r   r   r   r   r   torchgen.utilsr   r$   r%   boolr2   r7   r<   rA   rP    r)   r(   <module>r\      s   2 2 2 2 2 2 2 2 2 2 2 2                                             "                ( ' ' ' ' '~ #    QQQ&-Q7;QQ Q Q Q(/Xf% /$ /5 / / / /UX U U$ U: U U U U=X|%;;<= = 	=
 
']= = = =@N t W      r)   