mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
delete observation repository
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Repository for managing Observation objects."""
|
||||
from typing import Sequence
|
||||
from sqlalchemy import select
|
||||
from typing import Sequence, Dict, Any
|
||||
from sqlalchemy import select, and_, delete
|
||||
|
||||
from basic_memory.models import Observation
|
||||
from basic_memory.repository import Repository
|
||||
@@ -22,4 +22,12 @@ class ObservationRepository(Repository[Observation]):
|
||||
"""Find observations with a specific context."""
|
||||
query = select(Observation).filter(Observation.context == context)
|
||||
result = await self.execute_query(query)
|
||||
return result.scalars().all()
|
||||
return result.scalars().all()
|
||||
|
||||
async def delete_by_fields(self, **filters: Dict[str, Any]) -> bool:
|
||||
"""Delete observations matching the given field values."""
|
||||
conditions = [getattr(Observation, field) == value for field, value in filters.items()]
|
||||
query = delete(Observation).where(and_(*conditions))
|
||||
result = await self.execute_query(query)
|
||||
await self.session.flush()
|
||||
return result.rowcount > 0 # pyright: ignore [reportAttributeAccessIssue]
|
||||
Reference in New Issue
Block a user