Module facetorch.configuration

Supported resource-backed and external Hydra configuration loaders.

Functions

def load_config(profile: str | None = 'cpu',
*,
overrides: Sequence[str] | None = None,
offline: bool | None = None,
allow_legacy_models: bool | None = None) ‑> omegaconf.dictconfig.DictConfig
Expand source code
def load_config(
    profile: Optional[str] = "cpu",
    *,
    overrides: Optional[Sequence[str]] = None,
    offline: Optional[bool] = None,
    allow_legacy_models: Optional[bool] = None,
) -> DictConfig:
    """Compose packaged facetorch defaults independently of the current directory.

    Safe to call inside an existing Hydra application: composition uses its own
    loader and does not replace the application's Hydra instance or search path.

    Args:
        profile: ``"cpu"`` (default), ``"gpu"``, or ``None`` to retain the
            packaged device value.
        overrides: Hydra override strings applied after the selected profile.
        offline: Explicitly disable or allow model network access. ``None`` uses
            the packaged environment-backed default.
        allow_legacy_models: Explicit opt-in for eligible verified TorchScript
            fallback artifacts. ``None`` retains the packaged false default.

    Returns:
        A fully composed configuration with ``cfg.analyzer`` available.
    """
    register_path_resolvers()
    option_overrides = _option_overrides(
        _normalize_overrides(overrides),
        offline=offline,
        allow_legacy_models=allow_legacy_models,
    )
    composed_overrides = _profile_overrides(profile, option_overrides)
    try:
        return compose_config(
            search_path="pkg://facetorch.configs",
            config_name="config",
            overrides=composed_overrides,
            job_name="facetorch-load-config",
        )
    except ConfigurationError:
        raise
    except Exception as exc:
        raise ConfigurationError(
            "Could not compose packaged facetorch configuration."
        ) from exc

Compose packaged facetorch defaults independently of the current directory.

Safe to call inside an existing Hydra application: composition uses its own loader and does not replace the application's Hydra instance or search path.

Args
-----=
profile
"cpu" (default), "gpu", or None to retain the packaged device value.
overrides
Hydra override strings applied after the selected profile.
offline
Explicitly disable or allow model network access. None uses the packaged environment-backed default.
allow_legacy_models
Explicit opt-in for eligible verified TorchScript fallback artifacts. None retains the packaged false default.

Returns -----= A fully composed configuration with cfg.analyzer available.

def load_config_from_path(path: str | os.PathLike,
*,
profile: str | None = None,
overrides: Sequence[str] | None = None,
offline: bool | None = None,
allow_legacy_models: bool | None = None) ‑> omegaconf.dictconfig.DictConfig
Expand source code
def load_config_from_path(
    path: ConfigPath,
    *,
    profile: Optional[str] = None,
    overrides: Optional[Sequence[str]] = None,
    offline: Optional[bool] = None,
    allow_legacy_models: Optional[bool] = None,
) -> DictConfig:
    """Compose an advanced external Hydra YAML tree from an explicit file path.

    Relative paths are resolved against the caller's current directory. The file's
    parent becomes Hydra's configuration directory, so its ``defaults`` list and
    sibling configuration groups are composed normally. An existing host Hydra
    application keeps its instance, search path, job state and compatibility mode.
    """
    register_path_resolvers()
    config_file = Path(path).expanduser().resolve()
    if config_file.suffix.lower() not in {".yaml", ".yml"}:
        raise ConfigurationError("External configuration must be a .yaml or .yml file.")
    if not config_file.is_file():
        raise ConfigurationError(
            f"External configuration file does not exist: {config_file}."
        )

    option_overrides = _option_overrides(
        _normalize_overrides(overrides),
        offline=offline,
        allow_legacy_models=allow_legacy_models,
    )
    composed_overrides = _profile_overrides(profile, option_overrides)
    try:
        return compose_config(
            search_path=os.fspath(config_file.parent),
            config_name=config_file.name[: -len(config_file.suffix)],
            overrides=composed_overrides,
            job_name="facetorch-load-external-config",
        )
    except ConfigurationError:
        raise
    except Exception as exc:
        raise ConfigurationError(
            f"Could not compose external configuration: {config_file}."
        ) from exc

Compose an advanced external Hydra YAML tree from an explicit file path.

Relative paths are resolved against the caller's current directory. The file's parent becomes Hydra's configuration directory, so its defaults list and sibling configuration groups are composed normally. An existing host Hydra application keeps its instance, search path, job state and compatibility mode.