o
    i                     @   s  d dl mZ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 d dlmZmZmZmZmZ edede	eededeejddddd	Zed
ed
e	eededeejddddd	Zededeededeejddddd	Zededeededeejddddd	Zdddedededee def
ddZdededee fddZdede
fddZdedee fddZdedee fddZdededee fddZ dS )    )ListOptional)
dispatcher)	BaseCTypeBindingboolTConstRefCTypeCTypelongT
NamedCTypetensorT)ArgumentBaseTyBaseTypeFunctionSchemaNativeFunctionsViewGroupbase)nametypeN)r   r   default
annotation)r   Znctypeargumentr   Zmutated_viewZmutated_view_idxreapply_views)r   g
is_reverseinclude_namespacereturnc                C   s   |d u r|sJ |r%| j d usJ | j jj }|r d| dS | dS |s)J | j d us0J |r9| jjj n| j jj }d| dS )Nz+at::functionalization::FunctionalInverses::Z_inversez
at::_ops::z::call)Z	view_copyfuncr   Zunambiguous_nameview)r   r   r   r   Zapi_name r   m/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torchgen/api/functionalization.pyr   K   s   
r   r   c                C   sH   | j j}|d jttjksJ |dd  }dd |D }tg| }|S )Nr      c                 S   s   g | ]	}t j|d dqS )T)Zremove_non_owning_ref_typesr   r   .0ar   r   r    
<listcomp>s   s    z%capture_arguments.<locals>.<listcomp>)	argumentsflat_allr   r   r   Tensorreapply_views_binding)r   r   argsnon_self_argsZnon_self_value_bindingsZall_bindingsr   r   r    capture_argumentsl   s   
r-   c                 C   s4   t | jdks	J | jD ]	}|j sJ qttS )Nr!   )lenreturnsr   Zis_tensor_liker   r   )r   retr   r   r    returns_typez   s   
r1   c                 C   s   | rt ttgS t tgS )N)base_bindingmutated_view_bindingmutated_view_idx_binding)r   r   r   r    outer_arguments   s   
r5   c                 C   s4   t | jdkst | jdkr| jd j rtS d S )Nr!   r   )r.   r/   r   Zis_list_liker4   )r   r   r   r    inner_call_index   s   r6   c                 C   sv   | j j}|d jttjksJ |dd  }dd |D }|s$tg| S t| }|d ur4ttt	|g| S ttt	g| S )Nr   r!   c                 S   s   g | ]}t |qS r   r"   r#   r   r   r    r&      s    z#inner_arguments.<locals>.<listcomp>)
r'   r(   r   r   r   r)   r2   r6   r3   r*   )r   r   r+   r,   Znon_self_bindingsZindex_bindingr   r   r    inner_arguments   s*   
r7   )!typingr   r   Ztorchgen.apir   Ztorchgen.api.typesr   r   r   r   r	   r
   r   r   Ztorchgen.modelr   r   r   r   r   r)   r2   r3   r4   boolr*   strr   r-   r1   r5   r6   r7   r   r   r   r    <module>   sj    (

!

