Skip to content

model_presets

Pre-configured model settings for experiments.

model_presets

@module: sce.model_presets @depends: tomllib @exports: SUPPORTED_MODEL_TYPES, load_model_presets, resolve_model_presets, load_xgboost_presets, resolve_xgboost_presets @data_flow: model type + TOML presets -> resolved parameter sets

load_model_presets

load_model_presets(model_type: str = 'xgboost', config_path: Path | None = None) -> Dict[str, Dict[str, Any]]

Load preset definitions for a supported model type from TOML.

Parameters:

Name Type Description Default
model_type str

Supported downstream model type.

'xgboost'
config_path Path | None

Optional explicit path to presets TOML.

None

Returns:

Type Description
Dict[str, Dict[str, Any]]

Dict mapping preset name -> params.

Source code in sce/model_presets.py
def load_model_presets(
    model_type: str = "xgboost",
    config_path: Path | None = None,
) -> Dict[str, Dict[str, Any]]:
    """Load preset definitions for a supported model type from TOML.

    Args:
        model_type: Supported downstream model type.
        config_path: Optional explicit path to presets TOML.

    Returns:
        Dict mapping preset name -> params.
    """
    model_type = _normalize_model_type(model_type)
    if config_path is None:
        config_path = _default_config_path(model_type)

    presets = deepcopy(_DEFAULT_PRESETS[model_type])

    if not config_path.exists():
        return presets

    with config_path.open("rb") as f:
        data = tomllib.load(f)

    presets.update({k: v for k, v in data.items() if isinstance(v, dict)})
    return presets

resolve_model_presets

resolve_model_presets(run_cfg: Dict[str, Any], model_cfg: Dict[str, Any], config_path: Path | None = None) -> Tuple[str, List[str], Dict[str, Dict[str, Any]]]

Resolve model type, preset names, and params for a run.

Parameters:

Name Type Description Default
run_cfg Dict[str, Any]

run section from dataset config.

required
model_cfg Dict[str, Any]

model section from dataset config.

required
config_path Path | None

Optional path to presets TOML.

None

Returns:

Type Description
Tuple[str, List[str], Dict[str, Dict[str, Any]]]

Tuple of (model_type, preset_names, preset_params).

Source code in sce/model_presets.py
def resolve_model_presets(
    run_cfg: Dict[str, Any],
    model_cfg: Dict[str, Any],
    config_path: Path | None = None,
) -> Tuple[str, List[str], Dict[str, Dict[str, Any]]]:
    """Resolve model type, preset names, and params for a run.

    Args:
        run_cfg: `run` section from dataset config.
        model_cfg: `model` section from dataset config.
        config_path: Optional path to presets TOML.

    Returns:
        Tuple of (model_type, preset_names, preset_params).
    """
    model_type = _normalize_model_type(
        model_cfg.get("type") if isinstance(model_cfg, dict) else None
    )
    presets = load_model_presets(model_type, config_path)

    preset_names = None
    if isinstance(run_cfg, dict):
        preset_names = run_cfg.get(_run_preset_key(model_type)) or run_cfg.get("model_configs")

    if preset_names:
        names = [n for n in preset_names if n in presets] or ["default"]
        overrides = {k: v for k, v in model_cfg.items() if k != "type"}
        if overrides:
            presets = presets.copy()
            for name in names:
                presets[name] = {**presets[name], **overrides}
        return model_type, names, presets

    if model_cfg:
        presets = presets.copy()
        presets["default"] = {
            **presets["default"],
            **{k: v for k, v in model_cfg.items() if k != "type"},
        }
        return model_type, ["default"], presets

    return model_type, ["default"], presets

load_xgboost_presets

load_xgboost_presets(config_path: Path | None = None) -> Dict[str, Dict[str, Any]]

Load XGBoost preset definitions from TOML.

Source code in sce/model_presets.py
def load_xgboost_presets(config_path: Path | None = None) -> Dict[str, Dict[str, Any]]:
    """Load XGBoost preset definitions from TOML."""
    return load_model_presets("xgboost", config_path)

resolve_xgboost_presets

resolve_xgboost_presets(run_cfg: Dict[str, Any], model_cfg: Dict[str, Any], config_path: Path | None = None) -> Tuple[List[str], Dict[str, Dict[str, Any]]]

Backward-compatible wrapper for XGBoost preset resolution.

Source code in sce/model_presets.py
def resolve_xgboost_presets(
    run_cfg: Dict[str, Any],
    model_cfg: Dict[str, Any],
    config_path: Path | None = None,
) -> Tuple[List[str], Dict[str, Dict[str, Any]]]:
    """Backward-compatible wrapper for XGBoost preset resolution."""
    _, names, presets = resolve_model_presets(
        run_cfg,
        {**(model_cfg or {}), "type": "xgboost"},
        config_path,
    )
    return names, presets