import json
from pathlib import Path
from typing import Any
from lfc_toolkit.src.configuration.configuration_reader import \
ConfigurationReader
[docs]
class CustomJsonEncoder(json.JSONEncoder):
[docs]
def default(self, obj: Any) -> Any:
"""Encodes non-JSON-serializable objects (Path, ConfigurationReader).
:param obj: Object to encode
:type obj: Any
:return: JSON-serializable representation
:rtype: Any
"""
if isinstance(obj, Path):
return str(obj)
if isinstance(obj, ConfigurationReader):
return dict(obj)
return super().default(obj)