mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-08 02:37:52 +02:00
Change pydantic detection
This commit is contained in:
@@ -8,8 +8,6 @@ from uuid import UUID
|
||||
|
||||
from langchain_core.load.load import Reviver
|
||||
from langchain_core.load.serializable import Serializable
|
||||
from langchain_core.pydantic_v1 import BaseModel as LcBaseModel
|
||||
from pydantic import BaseModel
|
||||
|
||||
from langgraph.serde.base import SerializerProtocol
|
||||
|
||||
@@ -37,14 +35,10 @@ class JsonPlusSerializer(SerializerProtocol):
|
||||
def _default(self, obj):
|
||||
if isinstance(obj, Serializable):
|
||||
return obj.to_json()
|
||||
elif isinstance(obj, (BaseModel, LcBaseModel)):
|
||||
# prefer non-deprecated method if available
|
||||
if hasattr(obj, "model_dump"):
|
||||
return self._encode_constructor_args(
|
||||
obj.__class__, kwargs=obj.model_dump()
|
||||
)
|
||||
else:
|
||||
return self._encode_constructor_args(obj.__class__, kwargs=obj.dict())
|
||||
elif hasattr(obj, "model_dump") and callable(obj.model_dump):
|
||||
return self._encode_constructor_args(obj.__class__, kwargs=obj.model_dump())
|
||||
elif hasattr(obj, "dict") and callable(obj.dict):
|
||||
return self._encode_constructor_args(obj.__class__, kwargs=obj.dict())
|
||||
elif isinstance(obj, UUID):
|
||||
return self._encode_constructor_args(UUID, args=[obj.hex])
|
||||
elif isinstance(obj, (set, frozenset)):
|
||||
|
||||
Reference in New Issue
Block a user