Download config.py from BRlkl/test-true2: direct link, hf CLI and curl.
- Browser
- Download file 1.79 kB
-
https://huggingface.co/BRlkl/test-true2/resolve/main/config.py
- Command line
-
hf download hf://BRlkl/test-true2/config.py
-
curl -L -o config.py https://huggingface.co/BRlkl/test-true2/resolve/main/config.py
1.79 kB
| from __future__ import annotations | |
| import hashlib | |
| import json | |
| from copy import deepcopy | |
| from pathlib import Path | |
| from typing import Any | |
| import yaml | |
| def load_config(path: str | Path) -> dict[str, Any]: | |
| with Path(path).open("r", encoding="utf-8") as handle: | |
| data = yaml.safe_load(handle) | |
| if not isinstance(data, dict): | |
| raise ValueError(f"Config at {path} must deserialize into a mapping.") | |
| return data | |
| def deep_merge(base: dict[str, Any], override: dict[str, Any]) -> dict[str, Any]: | |
| merged = deepcopy(base) | |
| for key, value in override.items(): | |
| if isinstance(value, dict) and isinstance(merged.get(key), dict): | |
| merged[key] = deep_merge(merged[key], value) | |
| else: | |
| merged[key] = value | |
| return merged | |
| def ensure_dir(path: str | Path) -> Path: | |
| resolved = Path(path) | |
| resolved.mkdir(parents=True, exist_ok=True) | |
| return resolved | |
| def save_json(path: str | Path, payload: dict[str, Any]) -> None: | |
| target = Path(path) | |
| target.parent.mkdir(parents=True, exist_ok=True) | |
| with target.open("w", encoding="utf-8") as handle: | |
| json.dump(payload, handle, indent=2, ensure_ascii=False) | |
| def flatten_for_wandb(payload: dict[str, Any], prefix: str = "") -> dict[str, Any]: | |
| flat: dict[str, Any] = {} | |
| for key, value in payload.items(): | |
| full_key = f"{prefix}.{key}" if prefix else key | |
| if isinstance(value, dict): | |
| flat.update(flatten_for_wandb(value, prefix=full_key)) | |
| else: | |
| flat[full_key] = value | |
| return flat | |
| def fingerprint_payload(payload: dict[str, Any]) -> str: | |
| serialized = json.dumps(payload, sort_keys=True, ensure_ascii=True, separators=(",", ":")) | |
| return hashlib.sha256(serialized.encode("utf-8")).hexdigest()[:16] | |