o
    I&i                     @   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   )Z
prev_state r   AC:\wamp64\www\opt\env\Lib\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torchZ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   Ztorch._C._functorchr   r   r   typingr   r   contextmanagerr	   r   r   intZ	argnums_tr   r   r   r   <module>   s    
