Toggle Menu
Prev Up Next

# Source code for langchain_core.load.dump

    import json
    from typing import Any, Dict

    from langchain_core.load.serializable import Serializable, to_json_not_implemented

    def default(obj: Any) -> Any:
        """Return a default value for a Serializable object or
        a SerializedNotImplemented object."""
        if isinstance(obj, Serializable):
            return obj.to_json()
        else:
            return to_json_not_implemented(obj)

    def dumps(obj: Any, *, pretty: bool = False, **kwargs: Any) -> str:
        """Return a json string representation of an object."""
        if "default" in kwargs:
            raise ValueError("`default` should not be passed to dumps")
        try:
            if pretty:
                indent = kwargs.pop("indent", 2)
                return json.dumps(obj, default=default, indent=indent, **kwargs)
            else:
                return json.dumps(obj, default=default, **kwargs)
        except TypeError:
            if pretty:
                return json.dumps(to_json_not_implemented(obj), indent=indent, **kwargs)
            else:
                return json.dumps(to_json_not_implemented(obj), **kwargs)

    def dumpd(obj: Any) -> Dict[str, Any]:
        """Return a json dict representation of an object."""
        return json.loads(dumps(obj))