U
    9%e%                     @   s*  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 eeddd	Zd
ddeeeeeedddZd
ddeeeeedddZddee ee
dddZeee dddZd
ddeeee	dddZddeeee	 d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   V/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torchgen/api/dispatcher.pyr   !   s    r   FT)remove_non_owning_ref_typessymint)tmutablebindsr   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   r   r   r   c                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   )rsr   r   c                C   s   t j| |dS )Nr!   )r   returns_type)r"   r   r   r   r   r#   J   s    r#   c                 C   sB   t tttf tt ddd}tt|t| j	j
| j	j| j	jS )N)r   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-   )r   r   r   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%   )r   r   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>   sH    	   