summaryrefslogtreecommitdiffstats
path: root/utils/json.py
blob: 05d66cb6d42dbf7d1e1a4aaaab7cff4a4f953ac5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import json
from json import JSONEncoder

from pydantic import BaseModel


class Encoder(JSONEncoder):
    def default(self, o):
        if isinstance(o, BaseModel):
            return o.model_dump()

        return super().default(o)


def json_serializer(item: any):
    return json.dumps(item, cls=Encoder)