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: