U
    Mh+                     @   sv   d dl Z d dlmZ d dlmZmZ G dd de jZe Ze	dddZ
e	dd	d
Zee	e	ed dddZdS )    N)contextmanager)IteratorOptionalc                   @   s.   e Zd ZU dZee ed< dZee ed< dS )LocalsN!use_const_ref_for_mutable_tensorsuse_ilistref_for_tensor_lists)__name__
__module____qualname__r   r   bool__annotations__r    r   r   @/var/www/html/venv/lib/python3.8/site-packages/torchgen/local.pyr      s   
r   )returnc                   C   s   t jd k	stdt jS )NzQneed to initialize local.use_const_ref_for_mutable_tensors with local.parametrize)_localsr   AssertionErrorr   r   r   r   r      s    r   c                   C   s   t jd k	stdt jS )NzMneed to initialize local.use_ilistref_for_tensor_lists with local.parametrize)r   r   r   r   r   r   r   r   "   s    r   )r   r   r   c                 c   s6   t j}t j}z| t _|t _d V  W 5 |t _|t _X d S )N)r   r   r   )r   r   Z%old_use_const_ref_for_mutable_tensorsZ!old_use_ilistref_for_tensor_listsr   r   r   parametrize*   s    
r   )	threading
contextlibr   typingr   r   localr   r   r   r   r   r   r   r   r   r   <module>   s    