Spaces:
Sleeping
Sleeping
Download src/elbench/config/loader.py from adelevett/ELBench-live: direct link, hf CLI and curl.
- Browser
- Download file 2.26 kB
-
https://huggingface.co/spaces/adelevett/ELBench-live/resolve/main/src/elbench/config/loader.py
- Command line
-
hf download hf://spaces/adelevett/ELBench-live/src/elbench/config/loader.py
-
curl -L -o loader.py https://huggingface.co/spaces/adelevett/ELBench-live/resolve/main/src/elbench/config/loader.py
2.26 kB
| from __future__ import annotations | |
| from pathlib import Path | |
| from typing import Any | |
| import yaml | |
| from elbench.schemas.config import ( | |
| AppConfig, | |
| FieldMappingConfig, | |
| FileRegistryEntry, | |
| JudgeConfig, | |
| ModelConfig, | |
| ModuleEntry, | |
| ProjectConfig, | |
| ProviderConfig, | |
| ) | |
| def _read_yaml(path: Path) -> dict[str, Any]: | |
| with path.open("r", encoding="utf-8") as handle: | |
| return yaml.safe_load(handle) or {} | |
| def load_project_config(config_root: Path | None = None) -> ProjectConfig: | |
| resolved_config_root = Path(config_root or "configs").resolve() | |
| project_root = resolved_config_root.parent | |
| app = AppConfig.model_validate(_read_yaml(resolved_config_root / "app.yaml")) | |
| modules_data = _read_yaml(resolved_config_root / "module_registry.yaml").get("modules", []) | |
| providers_data = _read_yaml(resolved_config_root / "providers.yaml").get("providers", []) | |
| models_data = _read_yaml(resolved_config_root / "models.yaml").get("models", []) | |
| judges_data = _read_yaml(resolved_config_root / "judges.yaml") | |
| files_data = _read_yaml(resolved_config_root / "file_registry.yaml").get("files", []) | |
| mappings_data = _read_yaml(resolved_config_root / "field_mappings.yaml").get("mappings", {}) | |
| app.data_root = (project_root / app.data_root).resolve() | |
| app.output_root = (project_root / app.output_root).resolve() | |
| modules = {item["module_name"]: ModuleEntry.model_validate(item) for item in modules_data} | |
| providers = {item["provider_name"]: ProviderConfig.model_validate(item) for item in providers_data} | |
| models = {item["model_id"]: ModelConfig.model_validate(item) for item in models_data} | |
| judges = JudgeConfig.model_validate(judges_data) | |
| file_registry = { | |
| item["canonical_name"]: FileRegistryEntry.model_validate(item) for item in files_data | |
| } | |
| field_mappings = { | |
| key: FieldMappingConfig.model_validate(value) for key, value in mappings_data.items() | |
| } | |
| return ProjectConfig( | |
| project_root=project_root, | |
| config_root=resolved_config_root, | |
| app=app, | |
| modules=modules, | |
| providers=providers, | |
| models=models, | |
| judges=judges, | |
| file_registry=file_registry, | |
| field_mappings=field_mappings, | |
| ) | |