mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 23:58:34 +00:00
33 lines
857 B
Python
33 lines
857 B
Python
"""Import utilities for optional dependencies."""
|
|
|
|
import importlib
|
|
from types import ModuleType
|
|
|
|
|
|
class OptionalDependencyError(ImportError):
|
|
"""Exception raised when an optional dependency is not installed."""
|
|
|
|
pass
|
|
|
|
|
|
def require(name: str, *, purpose: str) -> ModuleType:
|
|
"""Import a module, raising a helpful error if it's not installed.
|
|
|
|
Args:
|
|
name: The module name to import.
|
|
purpose: Description of what requires this dependency.
|
|
|
|
Returns:
|
|
The imported module.
|
|
|
|
Raises:
|
|
OptionalDependencyError: If the module is not installed.
|
|
"""
|
|
try:
|
|
return importlib.import_module(name)
|
|
except ImportError as exc:
|
|
raise OptionalDependencyError(
|
|
f"{purpose} requires the optional dependency '{name}'.\n"
|
|
f"Install it with: uv add {name}"
|
|
) from exc
|