""" Configuration management utilities. """ import os from typing import Any, Dict, Optional import yaml def load_config(config_path: str) -> Dict[str, Any]: """Load a YAML configuration file.""" if not os.path.exists(config_path): raise FileNotFoundError(f"Configuration file not found: {config_path}") with open(config_path, "r", encoding="utf-8") as f: return yaml.safe_load(f) or {} def merge_configs(base: Dict[str, Any], override: Optional[Dict[str, Any]]) -> Dict[str, Any]: """Deep merge two dictionaries, where override takes precedence.""" if not override: return base.copy() result = base.copy() for key, value in override.items(): if key in result and isinstance(result[key], dict) and isinstance(value, dict): result[key] = merge_configs(result[key], value) else: result[key] = value return result