From d3066889079c396f9742634e2d8f56e186445e1e Mon Sep 17 00:00:00 2001
From: James Briggs <35938317+jamescalam@users.noreply.github.com>
Date: Mon, 23 Dec 2024 15:38:35 +0400
Subject: [PATCH] fix: handle diff object

---
 semantic_router/routers/base.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/semantic_router/routers/base.py b/semantic_router/routers/base.py
index eff8647a..0d47f939 100644
--- a/semantic_router/routers/base.py
+++ b/semantic_router/routers/base.py
@@ -591,6 +591,7 @@ class BaseRouter(BaseModel):
             return diff.to_utterance_str()
         # otherwise we continue with the sync, first locking the index
         try:
+            diff_utt_str: list[str] = []
             _ = self.index.lock(value=True, wait=wait)
             try:
                 # first creating a diff
@@ -604,6 +605,7 @@ class BaseRouter(BaseModel):
                 sync_strategy = diff.get_sync_strategy(sync_mode=sync_mode)
                 # and execute
                 self._execute_sync_strategy(sync_strategy)
+                diff_utt_str = diff.to_utterance_str()
             except Exception as e:
                 logger.error(f"Failed to create diff: {e}")
                 raise e
@@ -613,7 +615,7 @@ class BaseRouter(BaseModel):
         except Exception as e:
             logger.error(f"Failed to lock index for sync: {e}")
             raise e
-        return diff.to_utterance_str()
+        return diff_utt_str
 
     async def async_sync(
         self, sync_mode: str, force: bool = False, wait: int = 0
@@ -645,6 +647,7 @@ class BaseRouter(BaseModel):
             return diff.to_utterance_str()
         # otherwise we continue with the sync, first locking the index
         try:
+            diff_utt_str: list[str] = []
             _ = await self.index.alock(value=True, wait=wait)
             try:
                 # first creating a diff
@@ -658,6 +661,7 @@ class BaseRouter(BaseModel):
                 sync_strategy = diff.get_sync_strategy(sync_mode=sync_mode)
                 # and execute
                 await self._async_execute_sync_strategy(sync_strategy)
+                diff_utt_str = diff.to_utterance_str()
             except Exception as e:
                 logger.error(f"Failed to create diff: {e}")
                 raise e
@@ -667,7 +671,7 @@ class BaseRouter(BaseModel):
         except Exception as e:
             logger.error(f"Failed to lock index for sync: {e}")
             raise e
-        return diff.to_utterance_str()
+        return diff_utt_str
 
     def _execute_sync_strategy(self, strategy: Dict[str, Dict[str, List[Utterance]]]):
         """Executes the provided sync strategy, either deleting or upserting
-- 
GitLab