Enhance log storage to support more data types (#1530)

This commit is contained in:
Robin Wang
2024-10-31 04:45:19 +08:00
committed by GitHub
parent 6193eb13fa
commit 4ae07468f3
2 changed files with 3 additions and 2 deletions

View File

@@ -70,7 +70,7 @@ class KickoffTaskOutputsSQLiteStorage:
task.expected_output, task.expected_output,
json.dumps(output, cls=CrewJSONEncoder), json.dumps(output, cls=CrewJSONEncoder),
task_index, task_index,
json.dumps(inputs), json.dumps(inputs, cls=CrewJSONEncoder),
was_replayed, was_replayed,
), ),
) )

View File

@@ -2,13 +2,14 @@ from datetime import datetime, date
import json import json
from uuid import UUID from uuid import UUID
from pydantic import BaseModel from pydantic import BaseModel
from decimal import Decimal
class CrewJSONEncoder(json.JSONEncoder): class CrewJSONEncoder(json.JSONEncoder):
def default(self, obj): def default(self, obj):
if isinstance(obj, BaseModel): if isinstance(obj, BaseModel):
return self._handle_pydantic_model(obj) return self._handle_pydantic_model(obj)
elif isinstance(obj, UUID): elif isinstance(obj, UUID) or isinstance(obj, Decimal):
return str(obj) return str(obj)
elif isinstance(obj, datetime) or isinstance(obj, date): elif isinstance(obj, datetime) or isinstance(obj, date):