Chatbot-RAG-v4 / generate_tree.py
NoeMartinezSanchez
Deploy Chatbot RAG with TinyLlama
774ec97
# generate_tree.py
import os
from pathlib import Path
def should_exclude(path_name):
"""Define qué carpetas y archivos excluir"""
exclude_patterns = {
'venv', '__pycache__', '.git', 'node_modules',
'.vscode', '.idea', 'dist', 'build', '.pytest_cache',
'*.pyc', '*.pyo', '*.egg-info'
}
for pattern in exclude_patterns:
if pattern in str(path_name):
return True
return False
def generate_tree(directory, prefix='', max_depth=4, current_depth=0):
"""Genera un árbol de directorios limpio"""
if current_depth > max_depth:
return []
lines = []
items = sorted(Path(directory).iterdir(), key=lambda x: (not x.is_dir(), x.name))
# Filtrar items excluidos
items = [item for item in items if not should_exclude(item.name)]
for index, item in enumerate(items):
is_last = index == len(items) - 1
connector = '└── ' if is_last else '├── '
if item.is_dir():
lines.append(f"{prefix}{connector}📁 {item.name}/")
extension = ' ' if is_last else '│ '
lines.extend(generate_tree(item, prefix + extension, max_depth, current_depth + 1))
else:
lines.append(f"{prefix}{connector}📄 {item.name}")
return lines
if __name__ == "__main__":
project_name = Path.cwd().name
print(f"📦 {project_name}/")
tree_lines = generate_tree('.', max_depth=2)
output = f"📦 {project_name}/\n" + '\n'.join(tree_lines)
print(output)
# Guardar en archivo
with open('estructura_proyecto.txt', 'w', encoding='utf-8') as f:
f.write(output)
print("\n✅ Estructura guardada en 'estructura_proyecto.txt'")