
    [Th                        % S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	  SSK
Jr  SSKJr  SSKJr  / S	Qr0 q\\\4   \S
'   Sq\" SS9 " S S\5      5       r\" SS9 " S S5      5       r\" SS9\SS j5       5       r\" SS9S\\   4S j5       r\" SS9S 5       r\" SS9S 5       r\" SS9S\\   4S j5       r\" SS9S\4S j5       r\" SS9\SS j5       5       r \" SS9S\\\4   4S j5       r!\" SS9S\S\\\4   4S j5       r"g)    N)contextmanager)Enum)AnyOptionalUnion   )compatibility)Graph)Node)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
NodeSourceNodeSourceActionget_graph_provenance_jsoncurrent_metaF)is_backward_compatiblec                       \ rS rSrSrSrSrg)r      createreplace N)__name__
__module____qualname____firstlineno__CREATEREPLACE__static_attributes__r       J/var/www/auris/envauris/lib/python3.13/site-packages/torch/fx/traceback.pyr   r      s    FGr%   r   c                      \ rS rSr% Sr " S S5      r\\S'   \S   \S'   \S    \S'   \	S   \S	'     SS\	\
   S\S\	\S\S   4      4S jjr\S\4S j5       r\S\4S j5       r\S\4S j5       rS rS rSS jrS\4S jrSrg
)r   %   z
NodeSource is a data structure that contains the provenance information of a node.
If node `a` is created from node `b`, then `a.meta["from_node"]` may contain NodeSource(b).
c                   *    \ rS rSrS\S\S\4S jrSrg)NodeSource.NodeInfo,   nametargetgraph_idc                 (    Xl         X l        X0l        g Nr,   r-   r.   )selfr,   r-   r.   s       r&   __init__NodeSource.NodeInfo.__init__-   s    I K$Mr%   )r.   r,   r-   N)r   r   r    r!   strintr3   r$   r   r%   r&   NodeInfor*   ,   s    	% 	%c 	%S 	%r%   r7   	pass_namer   action	from_node	node_infoNnodec                    X l         Uc  / nO[        U[        5      (       d  U/nU H  n[        U[        5      (       a  M   e   X0l        U(       a  U R                  UR                  [        UR                  5      [        UR                  5      S9U l        SUR                  ;   a#  [        R                  " UR                  S   5      O/ U l        g S U l        / U l        g )Nr1   r:   )r8   
isinstancelistr   r9   r7   r,   r5   r-   idgraphr;   metacopydeepcopyr:   )r2   r<   r8   r9   as        r&   r3   NodeSource.__init__7   s     #>FFD))XFAa!12222 !]]YYs4;;'7"TZZ. + DN
 $))+ dii45 N "DNDNr%   returnc                 T    U R                   (       a  U R                   R                  $ S$ N )r;   r,   r2   s    r&   r,   NodeSource.nameS   s    &*nnt~~""<"<r%   c                 T    U R                   (       a  U R                   R                  $ S$ rI   )r;   r-   rK   s    r&   r-   NodeSource.targetW   s    (,t~~$$>B>r%   c                 T    U R                   (       a  U R                   R                  $ S$ )N)r;   r.   rK   s    r&   r.   NodeSource.graph_id[   s    *...t~~&&@b@r%   c                 "    U R                  5       $ r0   )print_readablerK   s    r&   __repr__NodeSource.__repr___   s    ""$$r%   c                     SR                  U R                   Vs/ s H  oR                  R                  5       PM     sn5      $ s  snf )N+)joinr9   r,   lower)r2   rE   s     r&   _get_action_stringNodeSource._get_action_stringb   s/    xx=A=>>=s   #Ac                     US:  a  gSnU R                  5       nUSU-  S-  SU R                   SU R                   SU SU R                   S	3	-   -  nU R                   H  nX$R                  US
-   5      -  nM     U$ )N	   rJ       z(name=z, pass_name=z	, action=z, graph_id=z)
r   )rZ   r,   r8   r.   r:   rS   )r2   indentresultaction_stringitems        r&   rS   NodeSource.print_readablee   s    A://1&L1tyykdnn-=Y}oU`aeanan`oorst	
 NND))&1*55F #r%   c           
          U R                  5       nU R                  U R                  U R                  U R                  UU R
                   Vs/ s H  o"R                  5       PM     snS.$ s  snf )N)r,   r-   r.   r8   r9   r:   )rZ   r,   r-   r.   r8   r:   to_dict)r2   rb   r<   s      r&   rf   NodeSource.to_dictr   sY    //1IIkk#59^^D^T,,.^D
 	
 Es   A*)r9   r:   r;   r8   )rJ   N)r   )r   r   r    r!   __doc__r7   r5   __annotations__r?   r   r   r   r3   propertyr,   r-   r6   r.   rT   rZ   rS   dictrf   r$   r   r%   r&   r   r   %   s    
% % N#$$L!!
##
 PT	 tn    148J3KKLM	 8 =c = = ? ? ? A# A A%?

 

r%   r   c              #      #    U (       d  S v   g [         n[        R                  5       n Sq S v   Uq Uqg ! Uq Uqf = f7f)NT)should_preserve_node_metar   rC   )enablesaved_should_preserve_node_metasaved_current_metas      r&   r   r      sJ      *C')..0	.(,%(G%-L )H%-Ls   '>5 >;>stackc                 \    [         (       a!  U (       a  SR                  U 5      [        S'   g g g )NrJ   stack_trace)rm   rX   r   )rq   s    r&   r   r      s&     ! U&(ggen]# &+ r%   c                     [         (       aB  [        R                  S/ 5      U /-   [        S'   [        R                  SS5      S-   [        S'   g g )Ngrad_fn_seq_nr
in_grad_fnr   r   rm   r   get)seq_nrs    r&   r   r      sT     ! )5)9)9:JB)OS
 *
%& &2%5%5lA%F%J\" !r%   c                      [         (       aS  [        R                  SS5      n U S:  d   eU S:X  a  [        S	 [        S	 g U S-
  [        S'   [        S   S S [        S'   g g )Nrv   r   r   ru   rP   rw   )current_levels    r&   r   r      so    
 ! $((q9q   A\*-.)6):L&-9:J-KCR-PL)* !r%   rG   c                      [         (       a  [        R                  SS5      /$ [        R                  " [        R
                  " 5       S S 5      $ )Nrs   rJ   rP   )rm   r   rx   	tracebackformat_listextract_stackr   r%   r&   r   r      sA        344 $$Y%<%<%>s%CDDr%   c                      [         $ r0   )rm   r   r%   r&   r   r      s    $$r%   c              #      #    [         (       a[  U R                  (       aJ  [        n U R                  R                  5       q[	        X[
        R                  5      /[        S'   S v   Uqg S v   g ! Uqf = f7f)Nr:   )rm   rB   r   rC   r   r   r"   )r<   r8   
saved_metas      r&   r   r      sa      ! TYY!
	&99>>+L 4,<,C,CD)L% %L &Ls   #A5A A. &A5.A22A5c                      [         $ r0   )r   r   r%   r&   r   r      s    r%   rA   c                     0 nU R                    H`  nUR                  S:X  d  M  SUR                  ;   a-  UR                  S    Vs/ s H  o3R                  5       PM     snO/ XR                  '   Mb     U$ s  snf )zY
Given an fx.Graph, return a json that contains the provenance information of each node.
call_functionr:   )nodesoprB   rf   r,   )rA   provenance_tracking_jsonr<   sources       r&   r   r      ss    
  "77o% $))+ 15		+0FG0Ff!0FG %YY/  $#	 Hs   A5)T)rJ   )#rC   r}   
contextlibr   enumr   typingr   r   r   _compatibilityr	   rA   r
   r<   r   __all__r   rk   r5   ri   rm   r   r   r   r?   r   r   r   r   boolr   r   r   r   r   r%   r&   <module>r      s     %  ' ' )    "d38n !!  e,t  -
 e,V
 V
 -V
r e,.  -.$ e,549 5 -5 e,K -K e,Q -Q e,Ed3i E -E e,% % -% e,  -* e,$sCx.  - e,$U $tCH~ $ -$r%   