
    [il                     N    d dl Z ddlmZ  G d de j                  Zej        ZdS )    N   )_resolve_namec                        e Zd ZdZedededeeeedz  f                  fd            Z fdZ	ded	e
defd
Zd Zd Zd Zd Zd Z xZS )_ExtractModuleReferenceszR
    Extract the list of global variables a block of code will read and write
    srcpackagereturnNc                      | |          }t          j        |          }|                    |           t          |j                                                  S N)astparsevisitlist
referenceskeys)clsr   r   visitortrees        W/var/www/icac/venv/lib/python3.11/site-packages/torch/package/find_file_dependencies.pyrunz_ExtractModuleReferences.run   sK    #g,,y~~dG&++--...    c                 d    t                                                       || _        i | _        d S r   )super__init__r   r   )selfr   	__class__s     r   r   z!_ExtractModuleReferences.__init__   s+    r   module_namelevelc                 >    |dk    rt          || j        |          S |S )Nr   )r   r   )r   r   r   s      r   
_absmodulez#_ExtractModuleReferences._absmodule   s%    199 dlEBBBr   c                 <    |j         D ]}d| j        |j        d f<   d S )NT)namesr   name)r   nodealiass      r   visit_Importz%_ExtractModuleReferences.visit_Import   s3    Z 	7 	7E26DOUZ.//	7 	7r   c                     |                      |j        |j        dn|j                  }|j        D ]+}|j        dk    rd| j        ||j        f<   d| j        |d f<   ,d S )Nr   *T)r    moduler   r"   r#   r   )r   r$   r#   r%   s       r   visit_ImportFromz)_ExtractModuleReferences.visit_ImportFrom!   sw    t{1CAATTZ 	5 	5E zS  6:uz 23304t--	5 	5r   c                     |j         S r   valuer   r$   s     r   _grab_node_intz'_ExtractModuleReferences._grab_node_int,   
    zr   c                     |j         S r   r,   r.   s     r   _grab_node_strz'_ExtractModuleReferences._grab_node_str/   r0   r   c                     t          |j        d          r|j        j        dk    r	                      |j        d                   }g }d}t          |j                  dk    r2|                     fd|j        d         j        D                        nPt          |d          r@|j        D ]8}|j	        dk    r+|                     fd|j
        j        D                        9t          |j                  d	k    r!                     |j        d	                   }n?t          |d          r/|j        D ]'}|j	        d
k    r                     |j
                  }(|g k    rUd j        |d f<   |                    dd          d         }||k    r$                     ||          }d j        |d f<   d S d S                      ||          }|D ]!}|dk    rd j        ||f<   d j        |d f<   "d S # t          $ r Y d S w xY wd S d S )Nid
__import__r      c              3   B   K   | ]}                     |          V  d S r   r2   .0vr   s     r   	<genexpr>z6_ExtractModuleReferences.visit_Call.<locals>.<genexpr>:   s1      #V#VqD$7$7$:$:#V#V#V#V#V#Vr   keywordsfromlistc              3   B   K   | ]}                     |          V  d S r   r8   r9   s     r   r<   z6_ExtractModuleReferences.visit_Call.<locals>.<genexpr>>   sB       , ,;< 3 3A 6 6, , , , , ,r      r   T.r   )maxsplitr(   )hasattrfuncr4   r2   argslenextendeltsr=   argr-   r/   r   rsplitr    	Exception)r   r$   r#   r>   r   keywordtop_namer%   s   `       r   
visit_Callz#_ExtractModuleReferences.visit_Call2   s   49d## (		(D(D'**49Q<88&(ty>>A%%OO#V#V#V#VDIaLDU#V#V#VVVVVT:.. #'=  ";*44$OO , , , ,@G@R, , ,    ty>>A%% //	!==EET:.. G#'= G G";'11$($7$7$F$FEr>>
 59DOT4L1#{{3{;;A>H4''#'??8U#C#C<@4(8999 ('  ??477D!) A A !C<<=ADOT5M::<@DOT4L99A A    O(	 (	(D(Ds   FG7 ;:G7 7
HH)__name__
__module____qualname____doc__classmethodstrr   tupler   r   intr    r&   r*   r/   r2   rN   __classcell__)r   s   @r   r   r      s          /c /C /DsC$J1G,H / / / [/    
c # #    
7 7 7	5 	5 	5    * * * * * * *r   r   )r   
_importlibr   NodeVisitorr   r   find_files_source_depends_on r   r   <module>r\      sf    



 % % % % % %U U U U Us U U Up  8;   r   