From 375368786ac5e363a436a621f455c2b81b6b4abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=BA=94?= Date: Tue, 28 Apr 2026 14:30:18 +0800 Subject: [PATCH] refactor(memory): update profile handler and vector tools with improved formatting and error handling - Add module docstring to profiles/__init__.py - Add pylint disable comments for no-name-in-module and missing-function-docstring - Format long error message in ProfileHandler.sync_run method for better readability - Reformat parameters in ProfileHandler.aadd method to separate lines - Update model_copy call in reme.py to span multiple lines for better readability - Format aadd_batch call in update_profile.py to span multiple lines --- reme/memory/vector_tools/__init__.py | 2 ++ reme/memory/vector_tools/profiles/__init__.py | 1 + .../vector_tools/profiles/profile_handler.py | 14 ++++++++++++-- .../memory/vector_tools/profiles/update_profile.py | 5 ++++- reme/reme.py | 4 +++- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/reme/memory/vector_tools/__init__.py b/reme/memory/vector_tools/__init__.py index b6601c1c..9fb04923 100644 --- a/reme/memory/vector_tools/__init__.py +++ b/reme/memory/vector_tools/__init__.py @@ -1,5 +1,7 @@ """memory tools""" +# pylint: disable=no-name-in-module + from .base_memory_tool import BaseMemoryTool # chunk tools diff --git a/reme/memory/vector_tools/profiles/__init__.py b/reme/memory/vector_tools/profiles/__init__.py index e69de29b..150455db 100644 --- a/reme/memory/vector_tools/profiles/__init__.py +++ b/reme/memory/vector_tools/profiles/__init__.py @@ -0,0 +1 @@ +"""Profile memory tools.""" diff --git a/reme/memory/vector_tools/profiles/profile_handler.py b/reme/memory/vector_tools/profiles/profile_handler.py index de5cddf4..0df3707a 100644 --- a/reme/memory/vector_tools/profiles/profile_handler.py +++ b/reme/memory/vector_tools/profiles/profile_handler.py @@ -1,5 +1,7 @@ """Profile handler facade for filesystem and vector backends.""" +# pylint: disable=missing-function-docstring + import asyncio from pathlib import Path @@ -66,7 +68,9 @@ class ProfileHandler: asyncio.get_running_loop() except RuntimeError: return asyncio.run(coro) - raise RuntimeError("Synchronous profile access is not available in an active event loop. Use async methods instead.") + raise RuntimeError( + "Synchronous profile access is not available in an active event loop. Use async methods instead.", + ) async def adelete(self, profile_id: str | list[str]) -> bool | int: return await self.backend.delete(profile_id) @@ -74,7 +78,13 @@ class ProfileHandler: async def adelete_all(self) -> int: return await self.backend.delete_all() - async def aadd(self, message_time: str, profile_key: str, profile_value: str, ref_memory_id: str = "") -> MemoryNode: + async def aadd( + self, + message_time: str, + profile_key: str, + profile_value: str, + ref_memory_id: str = "", + ) -> MemoryNode: return await self.backend.add(message_time, profile_key, profile_value, ref_memory_id) async def aadd_batch(self, profiles: list[dict], ref_memory_id: str = "") -> list[MemoryNode]: diff --git a/reme/memory/vector_tools/profiles/update_profile.py b/reme/memory/vector_tools/profiles/update_profile.py index 54e59372..04c932bf 100644 --- a/reme/memory/vector_tools/profiles/update_profile.py +++ b/reme/memory/vector_tools/profiles/update_profile.py @@ -98,7 +98,10 @@ class UpdateProfile(BaseMemoryTool): # Add profiles for each target for target, target_profiles in profiles_by_target.items(): profile_handler = self.get_profile_handler(target) - new_nodes = await profile_handler.aadd_batch(profiles=target_profiles, ref_memory_id=self.history_id) + new_nodes = await profile_handler.aadd_batch( + profiles=target_profiles, + ref_memory_id=self.history_id, + ) self.memory_nodes.extend(new_nodes) added_count += len(new_nodes) else: diff --git a/reme/reme.py b/reme/reme.py index cc4ed4cd..c7c04d2e 100644 --- a/reme/reme.py +++ b/reme/reme.py @@ -238,7 +238,9 @@ class ReMe(Application): if self.profile_store_name in vector_store_configs: if self.profile_collection_name: - vector_store_configs[self.profile_store_name] = vector_store_configs[self.profile_store_name].model_copy( + vector_store_configs[self.profile_store_name] = vector_store_configs[ + self.profile_store_name + ].model_copy( update={"collection_name": profile_collection_name}, ) return