forked from Archives/langchain
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
534 B
Python
23 lines
534 B
Python
import json
|
|
from typing import Any, Dict
|
|
|
|
from langchain.load.serializable import Serializable, to_json_not_implemented
|
|
|
|
|
|
def default(obj: Any) -> Any:
|
|
if isinstance(obj, Serializable):
|
|
return obj.to_json()
|
|
else:
|
|
return to_json_not_implemented(obj)
|
|
|
|
|
|
def dumps(obj: Any, *, pretty: bool = False) -> str:
|
|
if pretty:
|
|
return json.dumps(obj, default=default, indent=2)
|
|
else:
|
|
return json.dumps(obj, default=default)
|
|
|
|
|
|
def dumpd(obj: Any) -> Dict[str, Any]:
|
|
return json.loads(dumps(obj))
|