19 lines
528 B
Python
19 lines
528 B
Python
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)
|