INNER CODE UNIT · Python

namespace_to_nested_omegaconf

allenai/dolma · python/dolma/cli/__init__.py:140

def namespace_to_nested_omegaconf(args: Namespace, structured: Type[T], config: Optional[dict] = None) -> T:
    nested_config_dict: Dict[str, Any] = {}
    for key, value in vars(args).items():
        nested_config_dict = _make_nested_dict(key, value, nested_config_dict)

    untyped_config: DictConfig = om.merge(
        om.create(config or {}), om.create(nested_config_dict)
    )  # pyright: ignore (pylance is confused because om.create might return a DictConfig or a ListConfig)

    base_structured_config: DictConfig = om.structured(structured)
    merged_config = om.merge(base_structured_config, untyped_config)

    # check for type
    if not isinstance(merged_config, DictConfig):
        raise DolmaConfigError(f"Expected a DictConfig, got {type(merged_config).__name__}")

    # try resolving all cross references in the config, raise a DolmaConfigError if it fails
    try:

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…