"""JSON Schema generation from parsed configurations.""" from typing import Any, Dict def generate_schema(data: Any) -> Dict[str, Any]: """Generate a JSON Schema from a parsed configuration. Args: data: The parsed configuration data Returns: A dictionary representing the JSON Schema """ schema: Dict[str, Any] = { "$schema": "http://json-schema.org/draft-07/schema#", "type": _infer_type(data), } if isinstance(data, dict): schema["properties"] = {} for key, value in data.items(): schema["properties"][key] = generate_schema(value) elif isinstance(data, list): if len(data) > 0: schema["items"] = generate_schema(data[0]) else: schema["items"] = {"type": "string"} return schema def _infer_type(data: Any) -> str: """Infer the JSON Schema type from a Python value.""" if data is None: return "null" elif isinstance(data, bool): return "boolean" elif isinstance(data, int): return "integer" elif isinstance(data, float): return "number" elif isinstance(data, str): return "string" elif isinstance(data, list): return "array" elif isinstance(data, dict): return "object" else: return "string"