| import os |
| import shutil |
| import sys |
| import tempfile |
| from pathlib import Path |
|
|
| from huggingface_hub import HfApi |
|
|
| ROOT = Path(__file__).resolve().parents[1] |
| if str(ROOT) not in sys.path: |
| sys.path.insert(0, str(ROOT)) |
|
|
| from constants import LEADERBOARD_REPO |
|
|
|
|
| REPO_TYPE = "dataset" |
|
|
|
|
| def main() -> None: |
| token = os.environ.get("HF_TOKEN") |
|
|
| seed_results = ROOT / "seed" / "results.csv" |
| if not seed_results.exists(): |
| raise FileNotFoundError(f"Seed file not found: {seed_results}") |
|
|
| api = HfApi(token=token) |
| try: |
| api.whoami(token=token) |
| except Exception as exc: |
| raise RuntimeError( |
| "HF_TOKEN is not set and no cached Hugging Face login was found. " |
| "Please run `export HF_TOKEN=...` or `hf auth login` first." |
| ) from exc |
|
|
| api.create_repo(repo_id=LEADERBOARD_REPO, repo_type=REPO_TYPE, exist_ok=True) |
|
|
| with tempfile.TemporaryDirectory(prefix="mbench_seed_") as tmp_dir: |
| tmp_root = Path(tmp_dir) |
| shutil.copy2(seed_results, tmp_root / "results.csv") |
|
|
| pending_dir = tmp_root / "submissions" / "pending" |
| verified_dir = tmp_root / "submissions" / "verified" |
| pending_dir.mkdir(parents=True, exist_ok=True) |
| verified_dir.mkdir(parents=True, exist_ok=True) |
| (pending_dir / ".gitkeep").write_text("", encoding="utf-8") |
| (verified_dir / ".gitkeep").write_text("", encoding="utf-8") |
|
|
| api.upload_folder( |
| folder_path=str(tmp_root), |
| repo_id=LEADERBOARD_REPO, |
| repo_type=REPO_TYPE, |
| commit_message="Initialize MBench leaderboard seed results", |
| ) |
|
|
| print(f"Uploaded seed results to {LEADERBOARD_REPO}: results.csv") |
| print("Created submissions/pending/.gitkeep and submissions/verified/.gitkeep") |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|