lazy_import¶
Lazy import a module and class.
Functions
| 
 | Safely import a module and raise an ImportError with the install message if the module is not found. | 
Classes
| 
 | Lazy import a module and class. | 
| 
 | Enum for optional packages that can be used in the library. | 
- class OptionalPackages(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
- Bases: - Enum- Enum for optional packages that can be used in the library. - The package name and error message are defined for each optional package as a tuple. - The value of the tuple: - The package name (str): The package name to import. Follows the right syntax: such as import azure.identity but the package itself is azure-identity. - Support a list of package names for related packages. This will be importing a list of packages while safe_import is used. - The error message (str): The message to display if the package is not found. 
 - Example of using multiple related packages: - from adalflow.utils.lazy_import import safe_import, OptionalPackages import sys azure_modules = safe_import( OptionalPackages.AZURE.value[0], # List of package names OptionalPackages.AZURE.value[1], # Error message ) # Manually add each module to sys.modules to make them available globally as if imported normally azure_module_names = OptionalPackages.AZURE.value[0] for name, module in zip(azure_module_names, azure_modules): sys.modules[name] = module # Use the modules as if they were imported normally from azure.identity import DefaultAzureCredential, get_bearer_token_provider - GROQ = ('groq', 'Please install groq with: pip install groq')¶
 - OPENAI = ('openai', 'Please install openai with: pip install openai')¶
 - ANTHROPIC = ('anthropic', 'Please install anthropic with: pip install anthropic')¶
 - GOOGLE_GENERATIVEAI = ('google.generativeai', 'Please install google-generativeai with: pip install google-generativeai')¶
 - TRANSFORMERS = ('transformers', 'Please install transformers with: pip install transformers')¶
 - COHERE = ('cohere', 'Please install cohere with: pip install cohere')¶
 - OLLAMA = ('ollama', 'Please install ollama with: pip install ollama')¶
 - BOTO3 = (['boto3', 'botocore'], 'Please install boto3 and botocore with: pip install boto3 botocore')¶
 - TORCH = ('torch', 'Please install torch with: pip install torch')¶
 - AZURE = (['azure.identity', 'azure.core'], 'Please install Azure packages with: pip install azure-identity azure-core azure-ai-formrecognizer azure-ai-textanalytics')¶
 - TOGETHER = ('together', 'Please install together with: pip install together')¶
 - MISTRAL = ('mistralai', 'Please install mistralai with: pip install mistrali')¶
 - FIREWORKS = ('fireworks-ai', 'Please install fireworks-ai with: pip install fireworks-ai')¶
 - FAISS = ('faiss', 'Please install faiss with: pip install faiss-cpu (or faiss if you use GPU)')¶
 - LANCEDB = ('lancedb', 'Please install lancedb with: pip install lancedb .')¶
 - SQLALCHEMY = ('sqlalchemy', 'Please install sqlalchemy with: pip install sqlalchemy')¶
 - PGVECTOR = ('pgvector', 'Please install pgvector with: pip install pgvector')¶
 - DATASETS = ('datasets', 'Please install datasets with: pip install datasets')¶
 - QDRANT = ('qdrant-client', 'Please install qdrant-client with: pip install qdrant-client')¶
 
- class LazyImport(import_path: str, optional_package: OptionalPackages, *args, **kwargs)[source]¶
- Bases: - object- Lazy import a module and class. - It is a proxy. The class/func will be created only when the class is instantiated or called. - Note - Do not subclass a lazy imported class. - Mainly internal library use to import optional packages only when needed. - Parameters:
- import_path (str) – The import path of the module and class, eg. “adalflow.components.model_client.openai_client.OpenAIClient”. 
- optional_package (OptionalPackages) – The optional package to import, it helps define the package name and error message. 
 
 
- safe_import(module_names: str | List[str], install_message: str) ModuleType | List[ModuleType][source]¶
- Safely import a module and raise an ImportError with the install message if the module is not found. - Handles importing of multiple related packages. - Parameters:
- module_names (list or str) – The package name(s) to import. 
- install_message (str) – The message to display if import fails. 
 
- Returns:
- The imported module. 
- Return type:
- ModuleType 
- Raises:
- ImportError – If any of the packages are not found. 
 - Example: - Tests 
 - try: numpy = safe_import("numpy", "Please install numpy with: pip install numpy") print(numpy.__version__) except ImportError as e: print(e) - When numpy is not installed, it will raise an ImportError with the install message. When numpy is installed, it will print the numpy version. - Use it to delay the import of optional packages in the library. 
 - from adalflow.utils.lazy_import import safe_import, OptionalPackages numpy = safe_import(OptionalPackages.NUMPY.value[0], OptionalPackages.NUMPY.value[1])