o
    i%                     @   sN  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	d
ZddddedededededefddZddddededededef
ddZdddee dede
fddZdedee fddZddddededede	fddZdddededee	 fd d!ZdS )"    N)ListSequenceUnion)cpp)ArgNameBindingCType
NamedCType)ArgumentFunctionSchemaReturnSelfArgumentTensorOptionsArgumentsType)assert_never	concatMapfuncreturnc                 C   s
   t | S N)r   name)r    r   f/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torchgen/api/dispatcher.pyr   !   s   
r   FT)remove_non_owning_ref_typessyminttmutablebindsr   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   ac                C   s   t | j| j|||dS )N)r   r   r   r   )r   typeZis_write)r   r   r   r   r   r   r   argument_type:   s   r    r   rsc                C   s   t j| |dS )Nr!   )r   returns_type)r"   r   r   r   r   r#   J   s   r#   c                 C   sD   dt tttf dtt fdd}tt|t| j	j
| j	j| j	jS )Nr   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   ZdtypeZlayoutZdeviceZ
pin_memoryr   )r   r   r   r   to_argumentP   s   


z"jit_arguments.<locals>.to_argument)r   r
   r   r   r   listr   	itertoolschain	arguments
positionalZ
kwarg_onlyout)r   r&   r   r   r   jit_argumentsO   s   
r-   c                C   s   t t| | j||d| j| dS )N)r   r   r   )Znctyper   r%   )r   r    r   )r   r   r   r   r   r   r%   f   s   r%   c                   s    fddt | D S )Nc                    s   g | ]}t | d qS )r!   )r%   ).0r   r!   r   r   
<listcomp>v   s    zarguments.<locals>.<listcomp>)r-   )r   r   r   r!   r   r*   u   s   r*   )r(   typingr   r   r   Ztorchgen.apir   Ztorchgen.api.typesr   r   r   r	   Ztorchgen.modelr
   r   r   r   r   r   Ztorchgen.utilsr   r   strr   boolr   r    r#   r-   r%   r*   r   r   r   r   <module>   s`     	

 
$