"""Utility functions for HAProxy MCP Server.""" from typing import Dict, Generator from .config import StatField def parse_stat_csv(stat_output: str) -> Generator[Dict[str, str], None, None]: """Parse HAProxy stat CSV output into structured data. Args: stat_output: Raw output from 'show stat' command Yields: Dictionaries with parsed stat fields for each row """ for line in stat_output.split("\n"): if not line or line.startswith("#"): continue parts = line.split(",") if len(parts) > StatField.STATUS: yield { "pxname": parts[StatField.PXNAME], "svname": parts[StatField.SVNAME], "scur": parts[StatField.SCUR] if len(parts) > StatField.SCUR else "0", "smax": parts[StatField.SMAX] if len(parts) > StatField.SMAX else "0", "status": parts[StatField.STATUS], "weight": parts[StatField.WEIGHT] if len(parts) > StatField.WEIGHT else "0", "check_status": parts[StatField.CHECK_STATUS] if len(parts) > StatField.CHECK_STATUS else "", }