U
    •Ê¹j%  ã                   @   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/bwave/python/venv/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    	úùûú ÿ  þ