
    Ǆga                        U d dl Z d dlmZ d dlmZmZmZ ddlmZ g dZ	i a
eeef   ed<   da ed	      ed
               Z ed	      dee   fd       Z ed	      d        Z ed	      d        Z ed	      dee   fd       Z ed	      defd       Z ed	      ed               Z ed	      deeef   fd       Zy)    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)is_backward_compatiblec               #   h   K   t         } t        j                         }	 da d  | a |ay # | a |aw xY ww)NT)should_preserve_node_metar   copy)saved_should_preserve_node_metasaved_current_metas     Z/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/torch/fx/traceback.pyr	   r	      sF      '@#%**,*$(!$C!) %D!)s   2) 2/2stackc                 H    t         r| rdj                  |       t        d<   y y y )N stack_trace)r   joinr   )r   s    r   r   r       s#     !U&(ggen]# &+     c                     t         rBt        j                  dg       | gz   t        d<   t        j                  dd      dz   t        d<   y y )Ngrad_fn_seq_nr
in_grad_fnr   r   r   r   get)seq_nrs    r   r   r   (   sJ     !)5)9)9:JB)OSYRZ)Z%&%1%5%5lA%F%J\" !r   c                      t         rQt        j                  dd      } | dkD  sJ | dk(  rt        d= t        d= y | dz
  t        d<   t        d   d d t        d<   y y )Nr!   r   r   r    r"   )current_levels    r   r   r   2   sl    
 !$((q9q   A\*-.)6):L&-9:J-KCR-PL)* !r   returnc                      t         rt        j                  dd      gS t        j                  t        j
                         d d       S )Nr   r   r&   )r   r   r#   	tracebackformat_listextract_stack r   r   r   r   B   s>       344 $$Y%<%<%>s%CDDr   c                      t         S N)r   r-   r   r   r
   r
   K   s    $$r   c              #   t  K   t         r| j                  rt        }	 | j                  j                         adt        vr!| j                  | j
                  fgt        d<   nFt        d   d   d   | j                  k7  r*t        d   | j                  | j
                  fgz   t        d<   d  |ay d  y # |aw xY ww)N	from_noder&   r   )r   metar   r   nametarget)node
saved_metas     r   r   r   P   s      !TYY!
	&99>>+L ,..2ii-E,F[)k*2.q1TYY>,8,E$))UYU`U`IaHb,b[)%L &Ls   B8BB1 )B81B55B8c                      t         S r/   )r   r-   r   r   r   r   f   s    r   )r*   
contextlibr   typingr   r   r   _compatibilityr   __all__r   str__annotations__r   r	   r   r   r   r   boolr
   r   r   r-   r   r   <module>r?      sA    % " " )C  "d38n !!  e,*  -* e,5DI 5 -5 e,K -K e,Q -Q e,Ed3i E -E e,% % -% e,  -( e,$sCx.  -r   