Download config.py from GenetikaPlus/segmentation-eval-dashboard: direct link, hf CLI and curl.
- Browser
- Download file 2.21 kB
-
https://huggingface.co/spaces/GenetikaPlus/segmentation-eval-dashboard/resolve/main/config.py
- Command line
-
hf download hf://spaces/GenetikaPlus/segmentation-eval-dashboard/config.py
-
curl -L -o config.py https://huggingface.co/spaces/GenetikaPlus/segmentation-eval-dashboard/resolve/main/config.py
2.21 kB
| from __future__ import annotations | |
| from dataclasses import dataclass | |
| import os | |
| from typing import Tuple | |
| DEFAULT_METRICS: Tuple[str, ...] = ( | |
| "F1", | |
| "Precision", | |
| "Recall", | |
| "Mean_IoU", | |
| "Mean_TP_IoU", | |
| ) | |
| def _parse_bool(value: str | None, default: bool) -> bool: | |
| if value is None: | |
| return default | |
| normalized = value.strip().lower() | |
| if normalized in {"1", "true", "yes", "y", "on"}: | |
| return True | |
| if normalized in {"0", "false", "no", "n", "off"}: | |
| return False | |
| return default | |
| def _parse_csv(value: str | None) -> tuple[str, ...]: | |
| if not value: | |
| return tuple() | |
| items = [item.strip() for item in value.split(",")] | |
| return tuple(item for item in items if item) | |
| class AppConfig: | |
| hf_token: str | None | |
| hf_owner: str | None | |
| repo_allowlist: tuple[str, ...] | |
| repo_prefixes: tuple[str, ...] | |
| repo_id_contains: str | |
| discovery_enabled: bool | |
| max_repos: int | |
| include_history: bool | |
| max_commits_per_repo: int | |
| metrics_section_heading: str | |
| cache_ttl_seconds: int | |
| auto_refresh_seconds: int | |
| max_load_seconds: int | |
| metrics: tuple[str, ...] | |
| def load_config() -> AppConfig: | |
| return AppConfig( | |
| hf_token=os.getenv("HF_TOKEN") or None, | |
| hf_owner=os.getenv("HF_OWNER") or None, | |
| repo_allowlist=_parse_csv(os.getenv("EVAL_REPO_ALLOWLIST")), | |
| repo_prefixes=_parse_csv(os.getenv("EVAL_REPO_PREFIXES")), | |
| repo_id_contains=os.getenv("EVAL_REPO_ID_CONTAINS", "eval").strip(), | |
| discovery_enabled=_parse_bool(os.getenv("EVAL_DISCOVERY_ENABLED"), True), | |
| max_repos=int(os.getenv("EVAL_MAX_REPOS", "200")), | |
| include_history=_parse_bool(os.getenv("EVAL_INCLUDE_HISTORY"), True), | |
| max_commits_per_repo=int(os.getenv("EVAL_MAX_COMMITS_PER_REPO", "20")), | |
| metrics_section_heading=os.getenv("EVAL_METRICS_SECTION_HEADING", "Performance Metrics").strip(), | |
| cache_ttl_seconds=int(os.getenv("EVAL_CACHE_TTL_SECONDS", "600")), | |
| auto_refresh_seconds=int(os.getenv("EVAL_AUTO_REFRESH_SECONDS", "300")), | |
| max_load_seconds=int(os.getenv("EVAL_MAX_LOAD_SECONDS", "90")), | |
| metrics=DEFAULT_METRICS, | |
| ) | |