Fix import error handling for optional chromadb dependency using TYPE_CHECKING

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-04-26 19:12:30 +00:00
parent 86155b4590
commit 2b7b2993ca
2 changed files with 29 additions and 14 deletions

View File

@@ -6,20 +6,27 @@ import os
import shutil
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
try:
if TYPE_CHECKING:
import chromadb
import chromadb.errors
from chromadb.api import ClientAPI
from chromadb.api.types import OneOrMany
from chromadb.config import Settings
except ImportError:
chromadb = None
ClientAPI = None
OneOrMany = None
Settings = None
raise ImportError(
"ChromaDB is not installed. Please install it with `pip install crewai[chromadb]`."
)
else:
try:
import chromadb
import chromadb.errors
from chromadb.api import ClientAPI
from chromadb.api.types import OneOrMany
from chromadb.config import Settings
except ImportError:
chromadb = None
ClientAPI = None
OneOrMany = None
Settings = None
raise ImportError(
"ChromaDB is not installed. Please install it with `pip install crewai[chromadb]`."
)
from crewai.knowledge.storage.base_knowledge_storage import BaseKnowledgeStorage
from crewai.utilities import EmbeddingConfigurator

View File

@@ -6,14 +6,22 @@ import shutil
import uuid
from typing import TYPE_CHECKING, Any, Dict, List, Optional
try:
if TYPE_CHECKING:
import chromadb
from chromadb.api import ClientAPI
from chromadb.config import Settings
except ImportError:
raise ImportError(
"ChromaDB is not installed. Please install it with `pip install crewai[chromadb]`."
)
else:
try:
import chromadb
from chromadb.api import ClientAPI
from chromadb.config import Settings
except ImportError:
chromadb = None
ClientAPI = None
Settings = None
raise ImportError(
"ChromaDB is not installed. Please install it with `pip install crewai[chromadb]`."
)
from crewai.memory.storage.base_rag_storage import BaseRAGStorage
from crewai.utilities import EmbeddingConfigurator