Files
solar-pv-dashboard/backend/app/utils/serialization.py
Mateusz Gruszczyński c5cc2efbac first commit
2026-03-23 15:56:18 +01:00

20 lines
589 B
Python

from __future__ import annotations
from dataclasses import asdict, is_dataclass
from datetime import date, datetime
from typing import Any
def to_plain(value: Any) -> Any:
if is_dataclass(value):
return to_plain(asdict(value))
if isinstance(value, datetime):
return value.isoformat()
if isinstance(value, date):
return value.isoformat()
if isinstance(value, dict):
return {key: to_plain(item) for key, item in value.items()}
if isinstance(value, (list, tuple, set)):
return [to_plain(item) for item in value]
return value