Files
AI/참고/guardrails-main/guardrails/classes/generic/default_json_encoder.py
2026-05-12 19:40:31 +09:00

22 lines
631 B
Python

from datetime import datetime
from dataclasses import asdict, is_dataclass
from pydantic import BaseModel
from json import JSONEncoder
class DefaultJSONEncoder(JSONEncoder):
def default(self, o):
if hasattr(o, "to_dict"):
return o.to_dict()
elif isinstance(o, BaseModel):
return o.model_dump()
elif is_dataclass(o):
return asdict(o)
elif isinstance(o, set):
return list(o)
elif isinstance(o, datetime):
return o.isoformat()
elif hasattr(o, "__dict__"):
return o.__dict__
return super().default(o)