Initial commit: SYNC_API project

This commit is contained in:
2025-11-06 09:50:10 -07:00
commit 733ef04eeb
42 changed files with 2380 additions and 0 deletions

View File

@@ -0,0 +1,108 @@
#!/usr/bin/env python3
"""
Script de verificación e instalación para la API de Monitoreo
"""
import sys
import subprocess
import importlib
import os
def check_python_version():
"""Verificar versión de Python"""
version = sys.version_info
if version.major < 3 or (version.major == 3 and version.minor < 8):
print("❌ Error: Se requiere Python 3.8 o superior")
return False
print(f"✅ Python {version.major}.{version.minor}.{version.micro} detectado")
return True
def check_package(package_name):
"""Verificar si un paquete está instalado"""
try:
importlib.import_module(package_name)
print(f"{package_name} instalado correctamente")
return True
except ImportError:
print(f"{package_name} no encontrado")
return False
def install_requirements():
"""Instalar dependencias desde requirements.txt"""
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"])
print("✅ Dependencias instaladas correctamente")
return True
except subprocess.CalledProcessError:
print("❌ Error instalando dependencias")
return False
def check_env_file():
"""Verificar archivo .env"""
if os.path.exists('.env'):
print("✅ Archivo .env encontrado")
with open('.env', 'r') as f:
content = f.read()
if 'DATABASE_SERVER=' in content and 'DATABASE_NAME=' in content:
print("✅ Variables de entorno básicas configuradas")
return True
else:
print("⚠️ Archivo .env existe pero faltan variables importantes")
return False
else:
print("❌ Archivo .env no encontrado")
return False
def main():
"""Función principal de verificación"""
print("🔍 Verificando instalación de API de Monitoreo de Sincronización...")
print("=" * 60)
all_ok = True
# Verificar Python
if not check_python_version():
all_ok = False
# Verificar paquetes principales
packages = ['fastapi', 'uvicorn', 'pydantic', 'pyodbc']
for package in packages:
if not check_package(package):
print(f"Intentando instalar {package}...")
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", package])
if check_package(package):
print(f"{package} instalado exitosamente")
else:
all_ok = False
except:
all_ok = False
# Verificar archivo .env
if not check_env_file():
print(" Asegúrate de configurar las variables de base de datos en .env")
print("=" * 60)
if all_ok:
print("🎉 ¡Verificación completada exitosamente!")
print("\n🚀 Para iniciar la API ejecuta:")
print(" python -m uvicorn main:app --host 127.0.0.1 --port 8000 --reload")
print("\n📖 Documentación disponible en:")
print(" http://127.0.0.1:8000/docs")
# Intentar importar la configuración
try:
from config.settings import settings
print(f"\n⚙️ Configuración cargada para BD: {settings.database_name}")
except Exception as e:
print(f"\n⚠️ Error cargando configuración: {e}")
else:
print("❌ Se encontraron problemas. Revisa los errores anteriores.")
return all_ok
if __name__ == "__main__":
success = main()
if not success:
sys.exit(1)