
    Χg                     b    d dl Z d dlmZmZmZ ddlmZ  G d de j                  Zej	        Z
dS )    N)ListOptionalTuple   )_resolve_namec                        e Zd ZdZedededeeeee         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returnc                      | |          }t          j        |          }|                    |           t          |j                                                  S N)astparsevisitlist
referenceskeys)clsr
   r   visitortrees        `/var/www/html/ai-engine/env/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/   r1   s     r   _grab_node_strz'_ExtractModuleReferences._grab_node_str0   r3   r   c                 T   t          |j        d          r|j        j        dk    r 	 |                     |j        d                   }g }d}t          |j                  dk    r>|j        d         j        D ]*}|                    |                     |                     +n\t          |d          rL|j        D ]D}|j	        dk    r7|j
        j        D ]*}|                    |                     |                     +Et          |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 }	~	d S d }	~	ww xY wd S d S )Nid
__import__r      keywordsfromlist   r!   T.r   )maxsplitr+   )hasattrfuncr7   r5   argsleneltsappendr:   argr0   r2   r   rsplitr#   	Exception)
r   r'   r&   r;   r!   vkeywordtop_namer(   es
             r   
visit_Callz#_ExtractModuleReferences.visit_Call3   s   49d## (		(D(D'**49Q<88ty>>A%%!Yq\. @ @ (;(;A(>(>????@T:.. H#'= H H";*44%,]%7 H H (0C0CA0F0F G G G G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%H :H 
H#H#)__name__
__module____qualname____doc__classmethodstrr   r   r   r   r   intr#   r)   r-   r2   r5   rL   __classcell__)r   s   @r   r	   r	      s          /c /C /DsHSM7I1J,K / / / [/    
c # #    
7 7 7	5 	5 	5    * * * * * * *r   r	   )r   typingr   r   r   
_importlibr   NodeVisitorr	   r   find_files_source_depends_on r   r   <module>rZ      s    



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