Source code for src.file.custom_json

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)