o
    h                  	   @  s(  d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZmZ d dlmZmZmZ erDd dlmZ e	deeee
eef e
eef Ze	deeee eeZe	d	eeef ee Zej d#ddZ!d$ddZ"d%ddZ#d&ddZ$d'ddZ%d(ddZ&d)d!d"Z'dS )*    )annotationsN)AnyCallableOptionalTYPE_CHECKINGTypeVarUnion)BackendIndexDispatchKeyNativeFunctionNativeFunctionsGroupNativeFunctionsViewGroup)contextST)IteratorFF2F3g@NativeFunctionsGroup | NativeFunctionsViewGroup | NativeFunctionreturnIterator[None]c              	   #  s    t | tr
| j nt | tr| j n|  t fdd- tj j j	d d V  W d    n1 s5w   Y  W d    d S W d    d S 1 sMw   Y  d S )Nc                     s   d j  d j S )Nzin native_functions.yaml line z:
  )locfunc fr   d/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/torchgen/context.py<lambda><   s    z)native_function_manager.<locals>.<lambda>)!use_const_ref_for_mutable_tensorsuse_ilistref_for_tensor_lists)

isinstancer   outr   viewr   localparametrizer    part_of_structured_group)r   r   r   r   native_function_manager-   s    

"r(   r   Callable[[F], T]c                   s   t  d fdd}|S )Nr   r   r   r   c                   s4   t |   | W  d    S 1 sw   Y  d S Nr(   r   r   r   r   wrapperJ   s   
$z%with_native_function.<locals>.wrapper)r   r   r   r   	functoolswrapsr   r-   r   r,   r   with_native_functionI      r2   Callable[[F, F2], T]c                      t  d	 fdd}|S )
Nr   r   f2r   r   r   c                   6   t |   | |W  d    S 1 sw   Y  d S r*   r+   )r   r6   r,   r   r   r-   S   s   
$z)with_native_function_and.<locals>.wrapper)r   r   r6   r   r   r   r.   r1   r   r,   r   with_native_function_andR   s   r8   Callable[[S, F], T]c                   r5   )
Nslfr   r   r   r   r   c                   s6   t |  | |W  d    S 1 sw   Y  d S r*   r+   r:   r   r,   r   r   r-   ]      
$z,method_with_native_function.<locals>.wrapper)r:   r   r   r   r   r   r.   r1   r   r,   r   method_with_native_function\   r3   r=   Callable[[S, F3], T]c                   r5   )
Nr:   r   r   r   r   r   c                   s:   t |d   | |W  d    S 1 sw   Y  d S )Nr   r+   r;   r,   r   r   r-   h   s   $z3method_with_nested_native_function.<locals>.wrapper)r:   r   r   r   r   r   r.   r1   r   r,   r   "method_with_nested_native_functione      r?   Callable[[F, BackendIndex], T]c                   r5   )
Nr   r   backend_indexr	   r   r   c                   r7   r*   r+   )r   rB   r,   r   r   r-   u   r<   z/with_native_function_and_index.<locals>.wrapper)r   r   rB   r	   r   r   r.   r1   r   r,   r   with_native_function_and_indexr   r@   rC   1Callable[[F, dict[DispatchKey, BackendIndex]], T]c                   r5   )
Nr   r   backend_indicesdict[DispatchKey, BackendIndex]r   r   c                   r7   r*   r+   )r   rE   r,   r   r   r-      r<   z1with_native_function_and_indices.<locals>.wrapper)r   r   rE   rF   r   r   r.   r1   r   r,   r    with_native_function_and_indices~   r@   rG   )r   r   r   r   )r   r)   r   r)   )r   r4   r   r4   )r   r9   r   r9   )r   r>   r   r>   )r   rA   r   rA   )r   rD   r   rD   )(
__future__r   
contextlibr/   typingr   r   r   r   r   r   torchgen.localr%   torchgen.modelr	   r
   r   r   r   torchgen.utilsr   r   r   collections.abcr   r   boolstrr   tuplelistr   contextmanagerr(   r2   r8   r=   r?   rC   rG   r   r   r   r   <module>   sD     

		

	


	
