refactor: Move serialize_datetime function

Move serialize_datetime function to be in it's own file

Refactor #COG-170
This commit is contained in:
Igor Ilic 2024-10-22 10:19:39 +02:00
parent 2cedcbe670
commit 71c1374859
2 changed files with 20 additions and 24 deletions

View file

@ -1,33 +1,17 @@
from typing import List, Optional, get_type_hints
from sqlalchemy import JSON, Column, Table, select, delete
from ..models.ScoredResult import ScoredResult
import asyncio
from ..vector_db_interface import VectorDBInterface, DataPoint
from sqlalchemy.orm import Mapped, mapped_column
from ..embeddings.EmbeddingEngine import EmbeddingEngine
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from pgvector.sqlalchemy import Vector
from typing import List, Optional, get_type_hints
from sqlalchemy.orm import Mapped, mapped_column
from sqlalchemy import JSON, Column, Table, select, delete
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from .serialize_datetime import serialize_datetime
from ..models.ScoredResult import ScoredResult
from ..vector_db_interface import VectorDBInterface, DataPoint
from ..embeddings.EmbeddingEngine import EmbeddingEngine
from ...relational.sqlalchemy.SqlAlchemyAdapter import SQLAlchemyAdapter
from ...relational.ModelBase import Base
from datetime import datetime
# TODO: Find better location for function
def serialize_datetime(data):
"""Recursively convert datetime objects in dictionaries/lists to ISO format."""
if isinstance(data, dict):
return {key: serialize_datetime(value) for key, value in data.items()}
elif isinstance(data, list):
return [serialize_datetime(item) for item in data]
elif isinstance(data, datetime):
return data.isoformat() # Convert datetime to ISO 8601 string
else:
return data
class PGVectorAdapter(SQLAlchemyAdapter, VectorDBInterface):

View file

@ -0,0 +1,12 @@
from datetime import datetime
def serialize_datetime(data):
"""Recursively convert datetime objects in dictionaries/lists to ISO format."""
if isinstance(data, dict):
return {key: serialize_datetime(value) for key, value in data.items()}
elif isinstance(data, list):
return [serialize_datetime(item) for item in data]
elif isinstance(data, datetime):
return data.isoformat() # Convert datetime to ISO 8601 string
else:
return data