2026-10-14 22:28:48 -05:00
|
|
|
"""Utilidades compartidas por los módulos del pipeline."""
|
|
|
|
|
|
|
|
|
|
import os
|
2026-10-14 22:42:37 -05:00
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger("pipeline")
|
2026-10-14 22:28:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def ruta_carpeta(subcarpeta: str) -> str:
|
|
|
|
|
"""Retorna la ruta absoluta de ``subcarpeta`` relativa a la raíz del proyecto."""
|
|
|
|
|
return os.path.join(os.path.dirname(__file__), subcarpeta)
|
|
|
|
|
|
|
|
|
|
|
2026-10-14 22:42:37 -05:00
|
|
|
def log(msg: str, level: int = 1, last: bool = False, severity: int = logging.INFO) -> None:
|
|
|
|
|
"""
|
|
|
|
|
Registra ``msg`` con la indentación de árbol usada en el log del pipeline.
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
msg: Mensaje a registrar.
|
|
|
|
|
level: Nivel de indentación del árbol (1-4).
|
|
|
|
|
last: True si es el último hijo de su rama (``└──`` en vez de ``├──``).
|
|
|
|
|
severity: Nivel de ``logging`` (``logging.WARNING``, ``logging.ERROR``…).
|
|
|
|
|
Por defecto ``logging.INFO``.
|
|
|
|
|
"""
|
2026-10-14 22:28:48 -05:00
|
|
|
branch = " └── " if last else " ├── "
|
|
|
|
|
pfx = {1: branch, 2: f" │ {branch}", 3: f" │ │ {branch}", 4: f" │ │ │ {branch}"}.get(level, branch)
|
2026-10-14 22:42:37 -05:00
|
|
|
logger.log(severity, f"{pfx}{msg}")
|