
    Ph                        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                   ed eej(                        dd      d	      Z ed
 ed
 e	 ee                   ed eej(                        dd      d	      Z ed ed ee             ed eej(                        dd      d	      Z ed ed ee             ed eej0                        dd      d	      Zdddedededee   def
dZdededee   fdZdede
fdZdedee   fdZdedee   fdZdededee   fdZ y)    )ListOptional)
dispatcher)	BaseCTypeBindingboolTConstRefCTypeCTypelongT
NamedCTypetensorT)ArgumentBaseTyBaseTypeFunctionSchemaNativeFunctionsViewGroupbase)nametypeN)r   r   default
annotation)r   nctypeargumentr   mutated_viewmutated_view_idxreapply_views)r   g
is_reverseinclude_namespacereturnc                   ||sJ |rI| j                   J | j                   j                  j                  j                         }|rd| dS | dS |sJ | j                   J |r.| j                  j                  j                  j                         n-| j                   j                  j                  j                         }d| dS )Nz+at::functionalization::FunctionalInverses::_inversez
at::_ops::z::call)	view_copyfuncr   unambiguous_nameview)r   r   r   r   api_names        iC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torchgen/api/functionalization.pyr   r   K   s      z {{&&&;;##((99;@
(SSZx((;;"""  	
))+[[""335 
 z((    r$   c                    | j                   j                  }|d   j                  t        t        j
                        k(  sJ |dd  }|D cg c]  }t        j                  |d       }}t        g|z   }|S c c}w )Nr      T)remove_non_owning_ref_types)		argumentsflat_allr   r   r   Tensorr   r   reapply_views_binding)r$   r   argsnon_self_argsanon_self_value_bindingsall_bindingss          r(   capture_argumentsr6   l   s     >>""D7<<8FMM2222HMJWJWQ
A4@-   **-DDL	s   A7c                     t        | j                        dk\  sJ | j                  D ]  }|j                  j                         rJ  t	        t
              S )Nr+   )lenreturnsr   is_tensor_liker   r   )r$   rets     r(   returns_typer<   z   sJ    t||!!!||xx&&(((  Wr)   c                 @    | rt         t        t        gS t         t        gS )N)base_bindingmutated_view_bindingmutated_view_idx_binding)r   s    r(   outer_argumentsrA      s     24LMM677r)   c                     t        | j                        dkD  s?t        | j                        dk(  r-| j                  d   j                  j                         rt        S y )Nr+   r   )r8   r9   r   is_list_liker@   )r$   s    r(   inner_call_indexrD      sH     4<<1DLLQ4<<?#7#7#D#D#F''r)   c                 `   | j                   j                  }|d   j                  t        t        j
                        k(  sJ |dd  }|D cg c]  }t        j                  |       }}|s
t        g|z   S t        |       }|t        t        t        |g|z   S t        t        t        g|z   S c c}w )Nr   r+   )r-   r.   r   r   r   r/   r   r   r>   rD   r?   r0   )r$   r   r1   r2   r3   non_self_bindingsindex_bindings          r(   inner_argumentsrH      s    >>""D7<<8FMM2222HM :GGA,,Q/G~ 111
 ).$$%	
 "" " $% "	" "# Hs   B+)!typingr   r   torchgen.apir   torchgen.api.typesr   r   r   r	   r
   r   r   r   torchgen.modelr   r   r   r   r   r/   r>   r?   r@   boolr0   strr   r6   r<   rA   rD   rH    r)   r(   <module>rP      s   ! #	 	 	 2 	6i6H(IJ(6==14D  	>i>P0QR(6==14D   #	-Ie4DE(6==14D    	?51AB8FKK#8$SW  " %))) ) 	)
 D>) 	)BN 4 DM ~ % 84 8DM 8> hw.? ". "d "tG} "r)   