Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions cognee/infrastructure/databases/vector/pgvector/serialize_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@ def serialize_data(data):
The serialized representation of the input data, with datetime objects converted to
ISO format and UUIDs to strings.
"""
if isinstance(data, dict):
return {key: serialize_data(value) for key, value in data.items()}
elif isinstance(data, list):
return [serialize_data(item) for item in data]
elif isinstance(data, datetime):
# Fast-path for common atomic types
if type(data) is datetime:
return data.isoformat() # Convert datetime to ISO 8601 string
elif isinstance(data, UUID):
elif type(data) is UUID:
return str(data)
elif type(data) is dict:
# Avoid extra method lookups inside dict comprehension
items = data.items()
return {key: serialize_data(value) for key, value in items}
elif type(data) is list:
# Avoid generic isinstance for potential performance gain with large lists
return [serialize_data(item) for item in data]
else:
return data