U
    3þjga  ã                   @   s&  U d dl Z d dlmZ d dlmZmZmZ ddlmZ dddd	d
dddgZ	i a
eeef ed< daeddedd„ ƒƒZeddee dœdd„ƒZedddd	„ ƒZedddd
„ ƒZeddee dœdd„ƒZeddedœdd„ƒZeddedd„ ƒƒZeddeeef dœdd„ƒZdS )é    N)Úcontextmanager)ÚListÚAnyÚDicté   )ÚcompatibilityÚpreserve_node_metaÚhas_preserved_node_metaÚset_stack_traceÚset_grad_fn_seq_nrÚreset_grad_fn_seq_nrÚformat_stackÚset_current_metaÚget_current_metaÚcurrent_metaF)Zis_backward_compatiblec                  c   s*   t } t ¡ }zda d V  W 5 | a |aX d S )NT)Úshould_preserve_node_metar   Úcopy)Zsaved_should_preserve_node_metaZsaved_current_meta© r   ú6/tmp/pip-unpacked-wheel-ttp2cnii/torch/fx/traceback.pyr      s    
©Ústackc                 C   s   t r| rd | ¡td< d S )NÚ Ústack_trace)r   Újoinr   r   r   r   r   r
       s    c                 C   s2   t r.t dg ¡| g td< t dd¡d td< d S )NÚgrad_fn_seq_nrÚ
in_grad_fnr   r   )r   r   Úget)Zseq_nrr   r   r   r   (   s    c                  C   sV   t rRt dd¡} | dkst‚| dkr2td= td= n | d td< td d d… td< d S )Nr   r   r   r   éÿÿÿÿ)r   r   r   ÚAssertionError)Zcurrent_levelr   r   r   r   2   s    )Úreturnc                   C   s,   t rt dd¡gS t t ¡ d d… ¡S d S )Nr   r   r   )r   r   r   Ú	tracebackÚformat_listÚextract_stackr   r   r   r   r   B   s    c                   C   s   t S ©N)r   r   r   r   r   r	   K   s    c                 c   s‚   t rx| jrxt}z`| j ¡ adtkr6| j| jfgtd< n0td d d | jkrftd | j| jfg td< d V  W 5 |aX nd V  d S )NZ	from_noder   r   )r   Úmetar   r   ÚnameÚtarget)ÚnodeZ
saved_metar   r   r   r   P   s    


c                   C   s   t S r#   )r   r   r   r   r   r   f   s    )r    Ú
contextlibr   Útypingr   r   r   Z_compatibilityr   Ú__all__r   ÚstrÚ__annotations__r   r   r
   r   r   r   Úboolr	   r   r   r   r   r   r   Ú<module>   s@        þ
	
