ahora se procesa de inicio a fin correo por correo

This commit is contained in:
George committed 2026-07-09 09:48:30 -05:00
1 parent 99b7caf535
commit 7fa7204442
25 files changed
+2234 -334

No files matched your search

+11 -9
View File
@@ -1,26 +1,27 @@
import sys
import os
from datetime import datetime, timedelta
from typing import TextIO
########################################################
# ============================================================================
class MultiStream:
"""
Clase para redirigir la salida a múltiples flujos (consola y archivo).
"""
def __init__(self, *streams):
self.streams = streams
def __init__(self, *streams: TextIO) -> None:
self.streams: tuple[TextIO, ...] = streams
def write(self, data):
def write(self, data: str) -> None:
for stream in self.streams:
stream.write(data)
stream.flush()
def flush(self):
def flush(self) -> None:
for stream in self.streams:
stream.flush()
########################################################
def setup_logger():
# ============================================================================
def setup_logger() -> str:
"""
Configura la redirección de stdout y stderr a un archivo de log y a la consola.
Retorna la ruta del archivo de log creado.
@@ -43,8 +44,8 @@ def setup_logger():
return log_path
########################################################
def limpiar_logs_antiguos(dias=7):
# ============================================================================
def limpiar_logs_antiguos(dias: int = 7) -> None:
"""
Elimina archivos de log con más de 'n' días de antigüedad.
"""
@@ -68,3 +69,4 @@ def limpiar_logs_antiguos(dias=7):
if count > 0:
print(f"🧹 Se eliminaron {count} archivos de log antiguos (más de {dias} días).")
# ============================================================================