import json from typing import Any from src.formatters.base import BaseFormatter class JSONFormatter(BaseFormatter): """JSON output formatter.""" @staticmethod def format(data: Any) -> str: """Format data as JSON.""" if hasattr(data, "to_dict"): return json.dumps(data.to_dict(), indent=2, default=str) elif hasattr(data, "__dict__"): return json.dumps(data.__dict__, indent=2, default=str) else: return json.dumps(data, indent=2, default=str)