U
    Å9%eh  ã                   @   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   s(   ztƒ } t dƒ d V  W 5 t | ƒ X d S )NT)r   r   )Z
prev_state© r   úU/var/www/html/Darija-Ai-API/env/lib/python3.8/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   
