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 import shutil
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
try: if TYPE_CHECKING:
import chromadb import chromadb
import chromadb.errors import chromadb.errors
from chromadb.api import ClientAPI from chromadb.api import ClientAPI
from chromadb.api.types import OneOrMany from chromadb.api.types import OneOrMany
from chromadb.config import Settings from chromadb.config import Settings
except ImportError: else:
chromadb = None try:
ClientAPI = None import chromadb
OneOrMany = None import chromadb.errors
Settings = None from chromadb.api import ClientAPI
raise ImportError( from chromadb.api.types import OneOrMany
"ChromaDB is not installed. Please install it with `pip install crewai[chromadb]`." 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.knowledge.storage.base_knowledge_storage import BaseKnowledgeStorage
from crewai.utilities import EmbeddingConfigurator from crewai.utilities import EmbeddingConfigurator

View File

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