|
import os |
|
import ast |
|
|
|
def get_imports(file_path): |
|
with open(file_path, 'r') as file: |
|
tree = ast.parse(file.read(), filename=file_path) |
|
|
|
imports = [] |
|
for node in ast.walk(tree): |
|
if isinstance(node, ast.Import): |
|
for alias in node.names: |
|
imports.append(alias.name) |
|
elif isinstance(node, ast.ImportFrom): |
|
imports.append(node.module) |
|
|
|
return imports |
|
|
|
def enumerate_imports(file_path, base_dir): |
|
imports = get_imports(file_path) |
|
all_imports = {file_path: imports} |
|
|
|
for imp in imports: |
|
imp_path = os.path.join(base_dir, imp.replace('.', '/') + '.py') |
|
if os.path.exists(imp_path): |
|
all_imports.update(enumerate_imports(imp_path, base_dir)) |
|
|
|
return all_imports |
|
|
|
|
|
base_dir = 'C:\\Users\\serban.tica\\Documents\\tobi_llm_intent_recognition' |
|
llmodels_path = os.path.join(base_dir, 'LLModels.py') |
|
|
|
|
|
all_imports = enumerate_imports(llmodels_path, base_dir) |
|
|
|
|
|
for file, imports in all_imports.items(): |
|
print(f"File: {file}") |
|
for imp in imports: |
|
print(f" Import: {imp}") |