Skip to content

ComputeConfig

kedro_azureml_pipeline.config.ComputeConfig

Bases: RootModel[dict[str, ClusterConfig]]

Named compute clusters with a mandatory __default__ entry.

Use resolve(tag) to look up a cluster by node tag, falling back to __default__.

See Also

ClusterConfig : Single cluster entry. AzureMLPipelineGenerator : Uses compute config for node routing.

Source Code

Show/Hide source
class ComputeConfig(RootModel[dict[str, ClusterConfig]]):
    """Named compute clusters with a mandatory ``__default__`` entry.

    Use ``resolve(tag)`` to look up a cluster by node tag,
    falling back to ``__default__``.

    See Also
    --------
    [ClusterConfig][kedro_azureml_pipeline.config.ClusterConfig] : Single cluster entry.
    [AzureMLPipelineGenerator][kedro_azureml_pipeline.generator.AzureMLPipelineGenerator] : Uses compute config for node routing.
    """

    @model_validator(mode="after")
    def _validate_default_key(self) -> "ComputeConfig":
        """Ensure a ``__default__`` compute entry is present.

        Returns
        -------
        ComputeConfig
            The validated instance.

        Raises
        ------
        ValueError
            If the ``__default__`` key is missing.
        """
        if "__default__" not in self.root:
            raise ValueError("ComputeConfig must contain a '__default__' key")
        return self

    def resolve(self, tag: str | None = None) -> ClusterConfig:
        """Return the cluster for *tag*, falling back to ``__default__``.

        Parameters
        ----------
        tag : str or None
            Node tag to look up. Falls back to ``__default__``
            when ``None``.

        Returns
        -------
        ClusterConfig
            The resolved cluster configuration.
        """
        if tag and tag in self.root:
            return self.root["__default__"].model_copy(update=self.root[tag].model_dump(exclude_none=True))
        return self.root["__default__"]

Methods

resolve(tag=None)

Return the cluster for tag, falling back to __default__.

Parameters
Name Type Description Default
tag str or None

Node tag to look up. Falls back to __default__ when None.

None
Returns
Type Description
ClusterConfig

The resolved cluster configuration.

Source Code
Show/Hide source
def resolve(self, tag: str | None = None) -> ClusterConfig:
    """Return the cluster for *tag*, falling back to ``__default__``.

    Parameters
    ----------
    tag : str or None
        Node tag to look up. Falls back to ``__default__``
        when ``None``.

    Returns
    -------
    ClusterConfig
        The resolved cluster configuration.
    """
    if tag and tag in self.root:
        return self.root["__default__"].model_copy(update=self.root[tag].model_dump(exclude_none=True))
    return self.root["__default__"]