#!/usr/bin/env python3 """ Script de utilidades para desarrollo del Balotario """ import os import sys import subprocess import shutil from pathlib import Path def clean_cache(): """Limpiar archivos de cache y temporales""" print("🧹 Limpiando archivos de cache...") # Limpiar __pycache__ for root, dirs, files in os.walk('.'): for dir_name in dirs: if dir_name == '__pycache__': cache_path = os.path.join(root, dir_name) print(f" Eliminando: {cache_path}") shutil.rmtree(cache_path) # Limpiar archivos .pyc for root, dirs, files in os.walk('.'): for file in files: if file.endswith('.pyc'): pyc_path = os.path.join(root, file) print(f" Eliminando: {pyc_path}") os.remove(pyc_path) print("✅ Cache limpiado") def run_tests(): """Ejecutar todos los tests de Python""" print("🧪 Ejecutando tests de Python...") test_files = [ 'test/test_parser.py', 'test/test_clean_parser.py' ] for test_file in test_files: if os.path.exists(test_file): print(f"\n📝 Ejecutando: {test_file}") try: subprocess.run([sys.executable, test_file], check=True) print(f"✅ {test_file} - PASÓ") except subprocess.CalledProcessError: print(f"❌ {test_file} - FALLÓ") else: print(f"⚠️ {test_file} - NO ENCONTRADO") def check_dependencies(): """Verificar que las dependencias estén instaladas""" print("📦 Verificando dependencias...") try: import flask print(f"✅ Flask {flask.__version__}") except ImportError: print("❌ Flask no instalado") return False return True def start_dev_server(): """Iniciar servidor de desarrollo""" print("🚀 Iniciando servidor de desarrollo...") if not check_dependencies(): print("❌ Faltan dependencias. Ejecuta: pip install -r requirements.txt") return # Configurar variables de entorno para desarrollo os.environ['FLASK_ENV'] = 'development' os.environ['FLASK_DEBUG'] = 'true' try: subprocess.run([sys.executable, 'run.py']) except KeyboardInterrupt: print("\n👋 Servidor detenido") def show_help(): """Mostrar ayuda""" print(""" 🛠️ Script de Utilidades - Balotario Licencia A-I Comandos disponibles: clean - Limpiar archivos de cache y temporales test - Ejecutar todos los tests de Python deps - Verificar dependencias instaladas dev - Iniciar servidor de desarrollo help - Mostrar esta ayuda Uso: python scripts/dev.py Ejemplos: python scripts/dev.py clean python scripts/dev.py test python scripts/dev.py dev """) def main(): if len(sys.argv) < 2: show_help() return command = sys.argv[1].lower() if command == 'clean': clean_cache() elif command == 'test': run_tests() elif command == 'deps': check_dependencies() elif command == 'dev': start_dev_server() elif command == 'help': show_help() else: print(f"❌ Comando desconocido: {command}") show_help() if __name__ == '__main__': main()