Source code for sequifier.config.hyperparameter_search_config

"""Canonical hyperparameter-search configuration.

Hyperparameter search always starts from a canonical authored training config
and applies recursive parameters. Historical self-contained search configs and
flat-schema base configs are intentionally unsupported.
"""

from __future__ import annotations

from typing import Any, TypeAlias

from sequifier.config.canonical_hyperparameter_search_config import (
    CanonicalHyperparameterSearchConfig,
    compile_canonical_hyperparameter_search_config,
)
from sequifier.config.composition import load_composed_yaml_config
from sequifier.typechecking import beartype

HyperparameterSearchConfig: TypeAlias = CanonicalHyperparameterSearchConfig
PartialHyperparameterSearchConfig: TypeAlias = CanonicalHyperparameterSearchConfig


@beartype
def compile_hyperparameter_search_parameter_config(
    config_path: str,
    config_values: dict[str, Any],
    skip_metadata: bool,
) -> CanonicalHyperparameterSearchConfig:
    """Compile canonical partial parameters."""

    return compile_canonical_hyperparameter_search_config(
        config_path,
        config_values,
        skip_metadata,
    )


[docs]@beartype def load_hyperparameter_search_config( config_path: str, skip_metadata: bool, ) -> CanonicalHyperparameterSearchConfig: """Load a canonical base-config hyperparameter search.""" config_values = load_composed_yaml_config(config_path) if "parameters" not in config_values: raise ValueError( f"Hyperparameter search config {config_path!r} must define " "'parameters' and reference a canonical training config." ) if not config_values.get("base_config_path"): raise ValueError( f"Hyperparameter search config {config_path!r} must define a " "non-empty 'base_config_path'." ) return compile_canonical_hyperparameter_search_config( config_path, config_values, skip_metadata, )
__all__ = [ "CanonicalHyperparameterSearchConfig", "HyperparameterSearchConfig", "PartialHyperparameterSearchConfig", "compile_canonical_hyperparameter_search_config", "compile_hyperparameter_search_parameter_config", "load_hyperparameter_search_config", ]