From a97635752b41ebbf3e8787b3c659fb130d4a9e4d Mon Sep 17 00:00:00 2001 From: jinliyl <6469360+jinliyl@users.noreply.github.com> Date: Tue, 31 Mar 2026 20:07:00 +0800 Subject: [PATCH] fix(core): handle chromadb import error gracefully (#192) - Changed CHROMADB_AVAILABLE flag to _CHROMADB_IMPORT_ERROR exception storage - Updated version from 0.3.1.7 to 0.3.1.8 - Modified import error handling to preserve original exception details - Removed hardcoded ImportError message in favor of dynamic exception raising - Added proper logger initialization using get_logger utility --- reme/__init__.py | 2 +- reme/core/file_store/chroma_file_store.py | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/reme/__init__.py b/reme/__init__.py index 3c235eb0..c1dbeb42 100644 --- a/reme/__init__.py +++ b/reme/__init__.py @@ -6,7 +6,7 @@ from . import extension from . import memory from .reme import ReMe -__version__ = "0.3.1.7" +__version__ = "0.3.1.8" __all__ = [ "config", diff --git a/reme/core/file_store/chroma_file_store.py b/reme/core/file_store/chroma_file_store.py index d87f5fef..9892f7d1 100644 --- a/reme/core/file_store/chroma_file_store.py +++ b/reme/core/file_store/chroma_file_store.py @@ -5,19 +5,20 @@ import random import time from pathlib import Path -from loguru import logger - from .base_file_store import BaseFileStore from ..enumeration import MemorySource from ..schema import FileMetadata, MemoryChunk, MemorySearchResult +from ..utils import get_logger + +logger = get_logger() try: import chromadb from chromadb.config import Settings - CHROMADB_AVAILABLE = True -except ImportError: - CHROMADB_AVAILABLE = False + _CHROMADB_IMPORT_ERROR: ImportError | None = None +except ImportError as e: + _CHROMADB_IMPORT_ERROR = e chromadb = None Settings = None @@ -39,10 +40,8 @@ class ChromaFileStore(BaseFileStore): self, **kwargs, ): - if not CHROMADB_AVAILABLE: - raise ImportError( - "chromadb package is required for ChromaFileStore. Install it with: pip install chromadb", - ) + if _CHROMADB_IMPORT_ERROR is not None: + raise _CHROMADB_IMPORT_ERROR super().__init__(**kwargs) self.client: "chromadb.ClientAPI | None" = None