Files
arcum42-ComfyUI_SageUtils/utils/model_info_utils.py
T
2026-04-04 14:34:38 -07:00

44 lines
1.3 KiB
Python

"""Shared helpers for normalizing model_info shapes across utilities."""
from typing import Any, List
def unwrap_single_item(value: Any) -> Any:
"""Unwrap single-item tuple/list wrappers used by model-info call sites."""
if isinstance(value, (tuple, list)):
return value[0]
return value
def as_list(value: Any) -> List[Any]:
"""Normalize a scalar/tuple/list value into a list."""
if isinstance(value, list):
return value
if isinstance(value, tuple):
return list(value)
return [value]
def normalize_model_info_list(model_info: Any) -> List[Any]:
"""Normalize model_info into a flat list, preserving non-dict entries."""
if isinstance(model_info, tuple):
model_info = list(model_info)
if isinstance(model_info, list):
flattened_info: List[Any] = []
for item in model_info:
if isinstance(item, tuple):
flattened_info.extend(item)
else:
flattened_info.append(item)
return flattened_info
return [model_info]
def iter_model_info_dicts(model_info: Any):
"""Iterate dictionary entries from model_info in normalized order."""
for item in normalize_model_info_list(model_info):
if isinstance(item, dict):
yield item