
    |Yho              
       ^   U d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	Z
i Zeeef         ed<    e            Zee         ed<   dee         defd	Zd
eddfdZdeej                 deeeef                  fdZdedeeeef                  fdZ	 ddededeeeef                  fdZdS )zG
Utilities for converting data types into structured JSON for dumping.
    N)Sequence)AnyOptionalINTERN_TABLEDUMPED_FILESsreturnc                       dS t                                d           It          t                     t            <   t          j        j                            d fdd           S )Nstrc                       fS N )rr   s   k/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/_logging/structured.py<lambda>zintern_string.<locals>.<lambda>   s    Aq6     T)suppress_context)r   getlentorch_logging	_internaltrace_structured)r   r   s   `@r   intern_stringr      sv    yrD!!AyQ 11>>>>>D 	2 	
 	
 	
 Hr   filenamec                      d vrd S  t           v rd S t                                           ddlm t          j        j                            d fd fd           d S )Neval_with_keyr   )_loader	dump_filec                      d iS )Nnamer   )r   s   r   r   zdump_file.<locals>.<lambda>+   s    H
 r   c                  .                                    S r   )
get_source)r   r   s   r   r   zdump_file.<locals>.<lambda>.   s    7--h77 r   )metadata_fn
payload_fn)r   addtorch.fx.graph_moduler   r   r   r   r   )r   r   s   `@r   r    r    !   s    h&&<X------	N--
 
 
 
 87777 .     r   tbc                     d | D             }|S )Nc                 ^    g | ]*}|j         |j        t          |j                  |j        d +S ))liner"   r   loc)linenor"   r   r   r,   ).0frames     r   
<listcomp>z"from_traceback.<locals>.<listcomp>5   sM     	 	 	  LJ%en55:		
 	
	 	 	r   r   )r)   r   s     r   from_tracebackr2   2   s)    	 	 	 	 	A Hr   
num_framesc                 \   ddl m} ddlm} |                                }|rt          |d| z  d                    S |                                                                }t          j	        
                    t          j        t                              t          j	        j        z   }t          t!          |                    D ]L\  }}||j        vr>|t%          |          |z
  | z
  t%          |          |z
           }t          |          c S Mt          |d| z  d                    S )Nr   )TracingContextCapturedTracebackr   )torch._guardsr5   torch.utils._tracebackr7   extract_stackr2   extractsummaryospathdirnameinspectgetfiler   sep	enumeratereversedr   r   )	r3   r5   r7   user_tbr)   torch_filepathir0   filtered_tbs	            r   get_user_stackrI   A   s/   ,,,,,,888888**,,G :gb:o&7&78999		"	"	$	$	,	,	.	.B W__W_U%;%;<<rw{JNhrll++ / /5//SWWq[:5B!CDK!+..... 0
 "R*_../000r      Fcppc                     ddl m ddlm} |                    |                                          }fd|D             }t          |d| z  d                   S )zJ
    Returns the traceback for the user stack and the framework stack
    r   )uninteresting_filesr6   )rK   c                     g | ]A}|j                             d           r|j                      vsd|j        v s	d|j        v ?|BS )z.pyzat::ztorch::)r   endswithr"   )r/   r0   rM   s     r   r1   z'get_framework_stack.<locals>.<listcomp>`   sr     

 

 

 ''..

 N*=*=*?*???%*$$	UZ(?(? 	 )@(?(?r   r   N)%torch.fx.experimental.symbolic_shapesrM   r9   r7   r;   r<   r2   )r3   rK   r7   r)   rM   s       @r   get_framework_stackrQ   V   s     JIIIII888888		"	"s	"	+	+	3	3	5	5B

 

 

 



 

 

B "R*_../000r   )rJ   F)__doc__r@   r=   	tracebackcollections.abcr   typingr   r   torch._logging._internalr   r   dictr   int__annotations__setr   r   r    FrameSummarylistr2   rI   boolrQ   r   r   r   <module>r^      s      				     $ $ $ $ $ $                      "d38n ! ! ! c#h   Xc] s         "x	 67 Dc3h<P    1s 1tDcN'; 1 1 1 1, ',1 11#1	$sCx.1 1 1 1 1 1r   