o
    hh                     @   sj   d dl Z d dlZd dlmZmZmZ d dlmZmZ e j	dd Z
dd Zdd	 Zeeeed
f f ZdS )    N)*set_single_level_autograd_function_allowed*get_single_level_autograd_function_allowedunwrap_if_dead)UnionTuplec                  c   s0    zt  } td d V  W t|  d S t|  w )NT)r   r   )
prev_state r   L/var/www/html/ai/venv/lib/python3.10/site-packages/torch/_functorch/utils.py%enable_single_level_autograd_function
   s   r
   c                 C   s   t dd | D }|S )Nc                 s   s(    | ]}t |tjrt|n|V  qd S N)
isinstancetorchTensorr   ).0argr   r   r	   	<genexpr>   s
    
z'unwrap_dead_wrappers.<locals>.<genexpr>)tuple)argsresultr   r   r	   unwrap_dead_wrappers   s   r   c                    s    fdd}|S )Nc                    s
    | _ | S r   )
__module__)fnmoduler   r	   wrapper$   s   zexposed_in.<locals>.wrapperr   )r   r   r   r   r	   
exposed_in#   s   r   .)
contextlibr   torch._C._functorchr   r   r   typingr   r   contextmanagerr
   r   r   int	argnums_tr   r   r   r	   <module>   s    
