Files
Conor-Collins-ComfyUI-CoCoT…/utils/debug_utils.py
T

56 lines
2.1 KiB
Python

"""
Debug utilities for COCO Tools with simple/verbose logging control.
"""
import logging
from typing import List, Dict, Any, Optional
# Global debug mode control - default to simple
DEBUG_MODE = "simple" # "simple" or "verbose"
def set_debug_mode(mode: str):
"""Set global debug mode"""
global DEBUG_MODE
DEBUG_MODE = mode.lower() if mode.lower() in ["simple", "verbose"] else "simple"
def get_debug_mode() -> str:
"""Get current debug mode"""
return DEBUG_MODE
def debug_log(logger: logging.Logger, level: str, simple_msg: str, verbose_msg: Optional[str] = None, **kwargs):
"""
Log with debug verbosity control.
Args:
logger: Logger instance
level: Log level ("info", "warning", "error", "debug")
simple_msg: Short message for simple mode
verbose_msg: Detailed message for verbose mode (if None, uses simple_msg)
**kwargs: Additional context for verbose mode
"""
message = simple_msg if DEBUG_MODE == "simple" else (verbose_msg or simple_msg)
# Add context info in verbose mode
if DEBUG_MODE == "verbose" and kwargs:
context_parts = [f"{k}={v}" for k, v in kwargs.items()]
message += f" [{', '.join(context_parts)}]"
# Log based on level
if level.lower() == "info":
logger.info(message)
elif level.lower() == "warning":
logger.warning(message)
elif level.lower() == "error":
logger.error(message)
elif level.lower() == "debug":
logger.debug(message)
def format_layer_names(layer_names: List[str], max_simple: int = None) -> str:
"""Format layer names for logging - show all layer names as they're important for users"""
# Always show all layer names as users need to know what's available
return ', '.join(layer_names)
def format_tensor_info(tensor_shape: tuple, tensor_dtype: Any, name: str = "") -> str:
"""Format tensor information for logging"""
if DEBUG_MODE == "simple":
return f"{name} shape={tensor_shape}" if name else f"shape={tensor_shape}"
return f"{name} shape={tensor_shape}, dtype={tensor_dtype}" if name else f"shape={tensor_shape}, dtype={tensor_dtype}"