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.

    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:
        with initialize_config_module(
            config_module="facetorch.configs",
            version_base=None,
            job_name="facetorch-load-config",
        ):
            return compose(config_name="config", overrides=composed_overrides)
    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.

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.
    """
    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:
        with initialize_config_dir(
            config_dir=os.fspath(config_file.parent),
            version_base=None,
            job_name="facetorch-load-external-config",
        ):
            return compose(
                config_name=config_file.name[: -len(config_file.suffix)],
                overrides=composed_overrides,
            )
    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.