o
    I5i8                     @  s   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dZdddd0ddZdddd1ddZdd d2d$d%Zd3d'd(Zdddd4d*d+Zdd d5d-d.ZdS )6    )annotationsN)Sequence)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_never	concatMapfuncr
   returnstrc                 C  s
   t | S N)r   name)r    r   e/lsinfo/ai/hellotax_ai/llm_service/venv_embed/lib/python3.10/site-packages/torchgen/api/dispatcher.pyr   #   s   
r   FT)remove_non_owning_ref_typessyminttr   mutableboolbindsr   r   r   r   c                C  s   t j| ||||dS )N)r   r   r   r   )r   argumenttype_type)r   r   r   r   r   r   r   r   r   '   s   r   ar	   c                C  s   t | j| j|||dS )N)r   r   r   r   )r   typeis_write)r   r   r   r   r   r   r   argument_type<   s   r"   r   rsSequence[Return]r   c                C  s   t j| |dS )Nr#   )r   returns_type)r$   r   r   r   r   r&   L   s   r&   list[Argument]c                 C  s.   ddd}t t|t| jj| jj| jjS )Nr   0Argument | TensorOptionsArguments | SelfArgumentr   r'   c                 S  sL   t | tr| gS t | tr| jgS t | tr | j| j| j| jgS t	|  d S r   )

isinstancer	   r   argumentr   dtypelayoutdevice
pin_memoryr   )r   r   r   r   to_argumentR   s   


z"jit_arguments.<locals>.to_argument)r   r(   r   r'   )listr   	itertoolschain	arguments
positional
kwarg_onlyout)r   r/   r   r   r   jit_argumentsQ   s   
r7   r   c                C  s   t t| | j||d| j| dS )N)r   r   r   )nctyper   r*   )r   r"   r   )r   r   r   r   r   r   r*   h   s   r*   list[Binding]c                  s    fddt | D S )Nc                   s   g | ]}t | d qS )r#   )r*   ).0r   r#   r   r   
<listcomp>x   s    zarguments.<locals>.<listcomp>)r7   )r   r   r   r#   r   r3   w   s   r3   )r   r
   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )
r   r	   r   r   r   r   r   r   r   r   )r$   r%   r   r   r   r   )r   r
   r   r'   )r   r	   r   r   r   r   r   r   )r   r
   r   r   r   r9   )
__future__r   r1   typingr   torchgen.apir   torchgen.api.typesr   r   r   r   torchgen.modelr	   r
   r   r   r   r   torchgen.utilsr   r   r   r   r"   r&   r7   r*   r3   r   r   r   r   <module>   s&     
	
