Files
letta-server/letta/serialize_schemas/marshmallow_tool.py
Kian Jones b8e9a80d93 merge this (#4759)
* wait I forgot to comit locally

* cp the entire core directory and then rm the .git subdir
2025-09-17 15:47:40 -07:00

38 lines
995 B
Python

from typing import Dict
from marshmallow import post_dump, pre_load
from letta.orm import Tool
from letta.schemas.tool import Tool as PydanticTool
from letta.serialize_schemas.marshmallow_base import BaseSchema
class SerializedToolSchema(BaseSchema):
"""
Marshmallow schema for serializing/deserializing Tool objects.
"""
__pydantic_model__ = PydanticTool
@post_dump
def sanitize_ids(self, data: Dict, **kwargs) -> Dict:
# delete id
del data["id"]
del data["_created_by_id"]
del data["_last_updated_by_id"]
return data
@pre_load
def regenerate_ids(self, data: Dict, **kwargs) -> Dict:
if self.Meta.model:
data["id"] = self.generate_id()
data["_created_by_id"] = self.actor.id
data["_last_updated_by_id"] = self.actor.id
return data
class Meta(BaseSchema.Meta):
model = Tool
exclude = BaseSchema.Meta.exclude + ("is_deleted", "organization")