o
    ߗi                     @   sl   d dl Z d dlmZmZ d dlZd dlmZ dddZdd Zdej	j
d	ee fd
dZdd	efddZdS )    N)DictOptional)
LazyStringc                    sl   fdd dvrdd< dv r,zt j sdd< W n ty+   dd< Y nw t fddS )z;
    Returns a LazyString that formats the graph code.
    c                      s    d ur d  S S )N  r   )maybe_idnamer   M/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/torch/fx/_utils.pyformat_name   s   z+lazy_format_graph_code.<locals>.format_nameprint_outputFcoloredc                      s(   t d   djjjjdi S )Nz===== z =====
r   )_format_graph_codeforward__code__co_filenameprint_readabler   )r
   gmkwargsr   r	   <lambda>   s
    z(lazy_format_graph_code.<locals>.<lambda>)sysstdoutisattyAttributeErrorr   )r   r   r   r   r   )r
   r   r   r   r   r	   lazy_format_graph_code	   s   
r   c                 C   s   d|  d| d| dS )z7
    Returns a string that formats the graph code.
    zTRACED GRAPH
 r   
r   )r   filename	graph_strr   r   r	   r   '   s   r   graphreturnc                 C   s2   | j D ]}|jdkrd|jv r|jd   S qdS )zF
    Returns the nn_module_stack of the first call_function node.
    call_functionnn_module_stackN)nodesopmeta)r   noder   r   r	   #first_call_function_nn_module_stack.   s
   
r%      c                 C   sL   g }| }t |D ]}||  |jdkr n|j}qd|ddd S )zD
    Returns a string of the last num_nodes nodes in the graph.
    rootr   N)rangeappendformat_noder"   prevjoin)r$   	num_nodesnode_contextscur_r   r   r	   get_node_context8   s   
r2   )N)r&   )r   typingr   r   torchtorch._loggingr   r   r   fxGraphr%   strr2   r   r   r   r	   <module>   s   

