Subir archivos a "/"

This commit is contained in:
2026-07-01 20:39:27 +00:00
parent c9940ec377
commit 8504a1ae89
5 changed files with 682 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
from typing import List, Dict, Any, Tuple
from logger import get_logger
logger = get_logger(__name__)
# EXPLICACIÓN: Este módulo procesa los datos sin tocar la interfaz (Regla 5).
def validar_datos_tabla(datos_tabla: List[List[str]]) -> bool:
"""
Verifica que los tiempos ingresados sean numéricos (Regla 4).
Args:
datos_tabla (List[List[str]]): Matriz de datos extraída de la UI.
Returns:
bool: True si todos los datos requeridos son válidos numéricamente, False en caso contrario.
"""
try:
for fila in datos_tabla:
for celda in fila:
if celda.strip():
float(celda) # EAFP: intentar convertir a float en lugar de comprobaciones (Regla 3)
return True
except ValueError:
logger.warning("Fallo en la validación de tabla: celda no numérica.")
return False
except Exception:
logger.exception("Error inesperado al validar la tabla de datos.")
return False
def procesar_calculos_estudio(datos: Dict[str, Any]) -> Dict[str, float]:
"""
Realiza los cálculos de suplementos y valoración basados en la matriz de tiempos.
Args:
datos (Dict[str, Any]): Diccionario con la configuración del relevamiento y los tiempos.
Returns:
Dict[str, float]: Diccionario con los resultados calculados.
"""
# Lógica matemática del proyecto encapsulada sin UI
resultados: Dict[str, float] = {
"tiempo_estandar": 0.0,
"cadencia": 0.0
}
try:
# Aquí se realizarían los cálculos reales
pass
except Exception:
logger.exception("Error durante el procesamiento matemático del estudio.")
return resultados