Files
2026-07-13 13:22:34 +08:00

36 lines
932 B
Python

import logging
from mlflow.projects.backend.local import LocalBackend
from mlflow.utils.plugins import get_entry_points
ENTRYPOINT_GROUP_NAME = "mlflow.project_backend"
_logger = logging.getLogger(__name__)
# Statically register backend defined in mlflow
MLFLOW_BACKENDS = {
"local": LocalBackend,
}
def load_backend(backend_name):
# Static backends
if backend_name in MLFLOW_BACKENDS:
return MLFLOW_BACKENDS[backend_name]()
# backends from plugin
entrypoints = get_entry_points(ENTRYPOINT_GROUP_NAME)
if entrypoint := next((e for e in entrypoints if e.name == backend_name), None):
builder = entrypoint.load()
return builder()
# TODO Should be a error when all backends are migrated here
_logger.warning(
"Backend '%s' is not available. Available plugins are %s",
backend_name,
[*entrypoints, *MLFLOW_BACKENDS.keys()],
)
return None