§
    ®˜ºh�  ã                   ó  — U d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 ddl
mZ ddlmZ ddlmZ g d	¢Zi aeeef         ed
<   da ed¬¦  «         G d„ de¦  «        ¦   «         Z ed¬¦  «         G d„ d¦  «        ¦   «         Z ed¬¦  «        ed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 d„¦   «         ¦   «         Z  ed¬¦  «        deeef         fd„¦   «         Z! ed¬¦  «        dedeeef         fd„¦   «         Z"dS )!é    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                   ó   — e Zd ZdZdZdS )r   ÚcreateÚreplaceN)Ú__name__Ú
__module__Ú__qualname__ÚCREATEÚREPLACE© ó    úZ/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torch/fx/traceback.pyr   r      s   € € € € € à€FØ€G€G€Gr"   r   c                   ó<  — e Zd ZU dZ G d„ d¦  «        Zeed<   ed         ed<   ed          ed<   ed         ed<   	 	 ddee	         dedee
ded         f                  fd„Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zd„ Zd„ Zdd„Zdefd„Zd
S )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                   ó"   — e Zd Zdededefd„ZdS )úNodeSource.NodeInfoÚnameÚtargetÚgraph_idc                 ó0   — || _         || _        || _        d S ©N©r'   r(   r)   )Úselfr'   r(   r)   s       r#   Ú__init__zNodeSource.NodeInfo.__init__-   s   € ØˆDŒIØ ˆDŒKØ$ˆDŒMˆMˆMr"   N)r   r   r   ÚstrÚintr.   r!   r"   r#   ÚNodeInfor&   ,   s=   € € € € € ð	% ð 	%¨cð 	%¸Sð 	%ð 	%ð 	%ð 	%ð 	%ð 	%r"   r1   Ú	pass_namer   ÚactionÚ	from_nodeÚ	node_infoÚ NÚnodec                 ó¢  — || _         |€g }nt          |t          ¦  «        s|g}|D ]}t          |t          ¦  «        sJ ‚Œ|| _        |rw|                      |j        t          |j        ¦  «        t          |j
        ¦  «        ¬¦  «        | _        d|j        v rt          j        |j        d         ¦  «        ng | _        d S d | _        g | _        d S )Nr,   r4   )r2   Ú
isinstanceÚlistr   r3   r1   r'   r/   r(   ÚidÚgraphr5   ÚmetaÚcopyÚdeepcopyr4   )r-   r7   r2   r3   Úas        r#   r.   zNodeSource.__init__7   sç   € ð #ˆŒàˆ>ØˆFˆFÝ˜F¥DÑ)Ô)ð 	Ø�XˆFØð 	3ð 	3ˆAÝ˜aÕ!1Ñ2Ô2Ð2Ð2Ð2Ð2ØˆŒØð 	 Ø!Ÿ]š]Ø”Y¥s¨4¬;Ñ'7Ô'7Å"ÀTÄZÁ.Ä.ð +ñ ô ˆDŒNð
  $¤)Ð+Ð+õ ”˜dœi¨Ô4Ñ5Ô5Ð5àð ŒNˆNˆNð "ˆDŒNØˆDŒNˆNˆNr"   Úreturnc                 ó,   — | j         r| j         j        ndS ©Nr6   )r5   r'   ©r-   s    r#   r'   zNodeSource.nameS   s   € à&*¤nÐ<ˆtŒ~Ô"Ð"¸"Ð<r"   c                 ó,   — | j         r| j         j        ndS rC   )r5   r(   rD   s    r#   r(   zNodeSource.targetW   s   € à(,¬Ð>ˆtŒ~Ô$Ð$¸BÐ>r"   c                 ó,   — | j         r| j         j        ndS )Néÿÿÿÿ)r5   r)   rD   s    r#   r)   zNodeSource.graph_id[   s   € à*.¬.Ð@ˆtŒ~Ô&Ð&¸bÐ@r"   c                 ó*   — |                       ¦   «         S r+   )Úprint_readablerD   s    r#   Ú__repr__zNodeSource.__repr___   s   € Ø×"Ò"Ñ$Ô$Ð$r"   c                 óJ   — d                      d„ | j        D ¦   «         ¦  «        S )Nú+c                 ó@   — g | ]}|j                              ¦   «         ‘ŒS r!   )r'   Úlower)Ú.0r@   s     r#   ú
<listcomp>z1NodeSource._get_action_string.<locals>.<listcomp>c   s"   € Ð=Ð=Ð=¨A˜œŸš™œÐ=Ð=Ð=r"   )Újoinr3   rD   s    r#   Ú_get_action_stringzNodeSource._get_action_stringb   s%   € Ø�xŠxÐ=Ð=°´Ð=Ñ=Ô=Ñ>Ô>Ð>r"   r   c                 óà   — |dk    rdS d}|                       ¦   «         }|d|z  dz  d| j        › d| j        › d|› d| j        › d	�	z   z  }| j        D ]}||                     |d
z   ¦  «        z  }Œ|S )Né	   r6   ú é   z(name=z, pass_name=z	, action=z, graph_id=z)
r   )rR   r'   r2   r)   r4   rI   )r-   ÚindentÚresultÚaction_stringÚitems        r#   rI   zNodeSource.print_readablee   s¦   € Ø�AŠ:ˆ:Ø�2ØˆØ×/Ò/Ñ1Ô1ˆØØ�&‰L˜1ÑØs�t”yÐsÐs¨d¬nÐsÐsÀ}ÐsÐsÐaeÔanÐsÐsÐsñtñ	
ˆð ”Nð 	6ð 	6ˆDØ�d×)Ò)¨&°1©*Ñ5Ô5Ñ5ˆFˆFØˆr"   c                 ó‚   — |                       ¦   «         }| j        | j        | j        | j        |d„ | j        D ¦   «         dœS )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r!   ©Úto_dict)rO   r7   s     r#   rP   z&NodeSource.to_dict.<locals>.<listcomp>{   s    € ÐDÐDÐD¨T˜$Ÿ,š,™.œ.ÐDÐDÐDr"   )r'   r(   r)   r2   r3   r4   )rR   r'   r(   r)   r2   r4   )r-   rY   s     r#   r^   zNodeSource.to_dictr   sL   € à×/Ò/Ñ1Ô1ˆà”IØ”kØœØœØ#ØDÐD°T´^ÐDÑDÔDð
ð 
ð 	
r"   )r6   N)r   )r   r   r   Ú__doc__r1   r/   Ú__annotations__r:   r   r   r   r.   Úpropertyr'   r(   r0   r)   rJ   rR   rI   Údictr^   r!   r"   r#   r   r   %   s¥  € € € € € € ðð ð
%ð %ð %ð %ð %ñ %ô %ð %ð €N€N�NØÐ#Ô$Ð$Ð$Ñ$Ø�LÔ!Ð!Ð!Ñ!Ø˜
Ô#Ð#Ð#Ñ#ð
 ØPTð	 ð  à�tŒnð ð ð ð ˜Ð1°4Ð8JÔ3KÐKÔLÔMð	 ð  ð  ð  ð8 ð=�cð =ð =ð =ñ „Xð=ð ð?˜ð ?ð ?ð ?ñ „Xð?ð ðA˜#ð Að Að Añ „XðAð%ð %ð %ð?ð ?ð ?ðð ð ð ð

˜ð 

ð 

ð 

ð 

ð 

ð 

r"   r   Tc              #   ó‚   K  — | sd V — d S t           }t                               ¦   «         }	 da d V — |a |ad S # |a |aw xY w)NT)Úshould_preserve_node_metar   r>   )ÚenableÚsaved_should_preserve_node_metaÚsaved_current_metas      r#   r   r      ss   è è € ð ð .Øˆˆˆˆˆå*CÐ'å)×.Ò.Ñ0Ô0Ðð	.Ø(,Ð%ØˆEˆEˆEà(GÐ%Ø-ˆLˆLˆLøð )HÐ%Ø-ˆLÐ-Ð-Ð-Ð-s   ¬8 ¸>Ústackc                 óZ   — t           r!| r!d                     | ¦  «        t          d<   d S d S d S )Nr6   Ústack_trace)rd   rQ   r   )rh   s    r#   r   r   “   sA   € õ !ð 5 Uð 5Ø&(§g¢g¨e¡n¤n��]Ñ#Ð#Ð#ð5ð 5ð 5ð 5r"   c                 ó²   — t           rOt                               dg ¦  «        | gz   t          d<   t                               dd¦  «        dz   t          d<   d S d S )NÚgrad_fn_seq_nrÚ
in_grad_fnr   r   ©rd   r   Úget)Úseq_nrs    r#   r   r   ›   sj   € õ !ð Kå)5×)9Ò)9Ð:JÈBÑ)OÔ)OØðS
ñ *
�Ð%Ñ&õ &2×%5Ò%5°lÀAÑ%FÔ%FÈÑ%J��\Ñ"Ð"Ð"ðKð Kr"   c                  óâ   — t           rgt                               dd¦  «        } | dk    sJ ‚| dk    rt          d= t          d= d S | dz
  t          d<   t          d         d d…         t          d<   d S d S )Nrm   r   r   rl   rG   rn   )Úcurrent_levels    r#   r   r   §   s�   € õ
 !ð QÝ$×(Ò(¨°qÑ9Ô9ˆØ˜qÒ Ð Ð Ð Ø˜AÒÐÝ˜\Ð*ÝÐ-Ð.Ð.Ð.à)6¸Ñ):�L˜Ñ&Ý-9Ð:JÔ-KÈCÈRÈCÔ-P�LÐ)Ñ*Ð*Ð*ðQð Qr"   rA   c                  ó¢   — t           rt                               dd¦  «        gS t          j        t          j        ¦   «         d d…         ¦  «        S )Nrj   r6   rG   )rd   r   ro   Ú	tracebackÚformat_listÚextract_stackr!   r"   r#   r   r   ·   sI   € å ð EÝ× Ò  °Ñ3Ô3Ð4Ð4õ Ô$¥YÔ%<Ñ%>Ô%>¸sÀ¸sÔ%CÑDÔDÐDr"   c                  ó   — t           S r+   )rd   r!   r"   r#   r   r   À   s   € å$Ð$r"   r6   c              #   óÖ   K  — t           r[| j        rTt          }	 | j                             ¦   «         at	          | |t
          j        ¦  «        gt          d<   d V — |ad S # |aw xY wd V — d S )Nr4   )rd   r=   r   r>   r   r   r   )r7   r2   Ú
saved_metas      r#   r   r   Å   s‡   è è € õ !ð  T¤Yð Ý!ˆ
ð	&Øœ9Ÿ>š>Ñ+Ô+ˆLõ ˜4 Õ,<Ô,CÑDÔDð)�L˜Ñ%ð ˆEˆEˆEà%ˆLˆLˆLø˜:ˆLÐ%Ð%Ð%Ð%àˆˆˆˆˆs   ™AA ÁA"c                  ó   — t           S r+   )r   r!   r"   r#   r   r   Ü   s   € åÐr"   r<   c                 óˆ   — i }| j         D ]7}|j        dk    r*d|j        v rd„ |j        d         D ¦   «         ng ||j        <   Œ8|S )za
    Given an fx.Graph, return a json that contains the provenance information of each node.
    Úcall_functionr4   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r!   r]   )rO   Úsources     r#   rP   z-get_graph_provenance_json.<locals>.<listcomp>ê   s"   € ÐGÐGÐG f�—’Ñ!Ô!ÐGÐGÐGr"   )ÚnodesÚopr=   r'   )r<   Úprovenance_tracking_jsonr7   s      r#   r   r   á   sm   € ð
  "ÐØ”ð ð ˆØŒ7�oÒ%Ð%ð  $¤)Ð+Ð+ð HÐG°´	¸+Ô0FÐGÑGÔGÐGàð % T¤YÑ/øð
 $Ð#r"   )T)r6   )#r>   rt   Ú
contextlibr   Úenumr   Útypingr   r   r   Ú_compatibilityr	   r<   r
   r7   r   Ú__all__r   rb   r/   r`   rd   r   r   r   r:   r   r   r   r   Úboolr   r   r   r   r!   r"   r#   ú<module>rˆ      sS  ðà €€€€Ø Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð €ð  "€ˆd�3˜�8ŒnÐ !Ð !Ñ !Ø!Ð ð € eÐ,Ñ,Ô,ðð ð ð ð �tñ ô ñ -Ô,ðð
 € eÐ,Ñ,Ô,ðV
ð V
ð V
ð V
ð V
ñ V
ô V
ñ -Ô,ðV
ðr € eÐ,Ñ,Ô,Øð.ð .ð .ñ „ñ -Ô,ð.ð$ € eÐ,Ñ,Ô,ð5˜4 œ9ð 5ð 5ð 5ñ -Ô,ð5ð € eÐ,Ñ,Ô,ðKð Kñ -Ô,ðKð € eÐ,Ñ,Ô,ðQð Qñ -Ô,ðQð € eÐ,Ñ,Ô,ðE�d˜3”ið Eð Eð Eñ -Ô,ðEð € eÐ,Ñ,Ô,ð% ð %ð %ð %ñ -Ô,ð%ð € eÐ,Ñ,Ô,Øðð ð ñ „ñ -Ô,ðð* € eÐ,Ñ,Ô,ð˜$˜s C˜xœ.ð ð ð ñ -Ô,ðð € eÐ,Ñ,Ô,ð$ Uð $¨t°C¸°H¬~ð $ð $ð $ñ -Ô,ð$ð $ð $r"   