Utils
zenml.integrations.utils
Utility functions for the integrations module.
get_integration_for_module(module_name)
Gets the integration class for a module inside an integration.
If the module given by module_name
is not part of a ZenML integration,
this method will return None
. If it is part of a ZenML integration,
it will return the integration class found inside the integration
init file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
module_name |
str |
The name of the module to get the integration for. |
required |
Returns:
Type | Description |
---|---|
Optional[Type[zenml.integrations.integration.Integration]] |
The integration class for the module. |
Source code in zenml/integrations/utils.py
def get_integration_for_module(
module_name: str,
) -> Optional[Type[Integration]]:
"""Gets the integration class for a module inside an integration.
If the module given by `module_name` is not part of a ZenML integration,
this method will return `None`. If it is part of a ZenML integration,
it will return the integration class found inside the integration
__init__ file.
Args:
module_name: The name of the module to get the integration for.
Returns:
The integration class for the module.
"""
integration_prefix = "zenml.integrations."
if not module_name.startswith(integration_prefix):
return None
integration_module_name = ".".join(module_name.split(".", 3)[:3])
try:
integration_module = sys.modules[integration_module_name]
except KeyError:
integration_module = importlib.import_module(integration_module_name)
for _, member in inspect.getmembers(integration_module):
if (
member is not Integration
and isinstance(member, IntegrationMeta)
and issubclass(member, Integration)
):
return member
return None
get_requirements_for_module(module_name)
Gets requirements for a module inside an integration.
If the module given by module_name
is not part of a ZenML integration,
this method will return an empty list. If it is part of a ZenML integration,
it will return the list of requirements specified inside the integration
class found inside the integration init file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
module_name |
str |
The name of the module to get requirements for. |
required |
Returns:
Type | Description |
---|---|
List[str] |
A list of requirements for the module. |
Source code in zenml/integrations/utils.py
def get_requirements_for_module(module_name: str) -> List[str]:
"""Gets requirements for a module inside an integration.
If the module given by `module_name` is not part of a ZenML integration,
this method will return an empty list. If it is part of a ZenML integration,
it will return the list of requirements specified inside the integration
class found inside the integration __init__ file.
Args:
module_name: The name of the module to get requirements for.
Returns:
A list of requirements for the module.
"""
integration = get_integration_for_module(module_name)
return integration.get_requirements() if integration else []