o
    I5i                     @  s   d dl m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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)ddZ!d*ddZ"d+ddZ#d,dd Z$d-d$d%Z%d.d&d'Z&d(S )/    )annotations)Sequence)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funcr   returnstrc                 C  s:   t | jj}|  r|d7 }| jjr|d| jj 7 }|S )N_out_)r   name	is_out_fnoverload_name)r   r!    r$   a/lsinfo/ai/hellotax_ai/llm_service/venv_embed/lib/python3.10/site-packages/torchgen/api/native.pyr!   /   s   r!   tr   mutableboolbindsr   symintr   c                C  s   t | dkr ttt}|rt st|t|S t|t|S t | dkr3t|tt	tttS t | dkrBt|ttt
S t | dkrSt|tttt
S tj| |||d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_typer$   r$   r%   r.   9   s   r.   rsSequence[Return]r   c                C  s   t j| |dS )Nr*   )r   returns_type)r0   r*   r$   r$   r%   r3   M   s   r3   ar   c                C  s   t | j| j||dS )Nr,   )r.   typeis_write)r4   r)   r*   r$   r$   r%   argument_typeQ   s   r7   0Argument | SelfArgument | TensorOptionsArgumentsis_outlist[Binding]c             	   C  s  | }t | tr+d }|r| jd urtj| j| j|d}tt| | j|d| j|| dgS t | t	r8t
| j
||dS t | tr}d }|rCd}ttdtttd|| dttdtttd|| dttdtttd|| dttd	tttd	|| dgS t|  d S )
Nr2   )r)   r*   )nctyper!   defaultargument)r9   r*   z{}dtypelayoutdevice
pin_memory)
isinstancer   r<   r   default_exprr5   r   r7   r!   r   r=   r   r   r   r   r   r   r   r	   r   )r4   r9   r*   should_defaultr<   r$   r$   r%   r=   U   sX   


r=   c                  s4   g }|  jj |  jj  fdd|D S )Nc                   s(   g | ]}t |  d D ]}|qqS ))r*   r9   )r=   r"   ).0argrr   r*   r$   r%   
<listcomp>   s
    zarguments.<locals>.<listcomp>)extend	argumentsnon_outout)r   r*   argsr$   rH   r%   rK      s   rK   N)r   r   r   r   )
r&   r   r'   r(   r)   r   r*   r(   r   r   )r0   r1   r*   r(   r   r   )r4   r   r)   r   r*   r(   r   r   )r4   r8   r9   r(   r*   r(   r   r:   )r   r   r*   r(   r   r:   )'
__future__r   typingr   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.   r3   r7   r=   rK   r$   r$   r$   r%   <module>   s    D 





@