#!/usr/bin/env python3 """Run one bucket refresh for scheduled Hugging Face Jobs.""" from __future__ import annotations import json import os from pathlib import Path from leaderboard_core import DEFAULT_MAX_AGE_DAYS, DEFAULT_MIN_DOWNLOADS, DEFAULT_TOP_N, refresh def int_env(name: str, default: int) -> int: raw = os.environ.get(name) if raw is None or raw == "": return default return int(raw) def optional_int_env(name: str) -> int | None: raw = os.environ.get(name) if raw is None or raw == "": return None return int(raw) def main() -> int: token = os.environ.get("HF_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN") payload = refresh( output_dir=Path(os.environ.get("OPEN_MODEL_BUCKET_DIR", "/data")), min_downloads=int_env("OPEN_MODEL_MIN_DOWNLOADS", DEFAULT_MIN_DOWNLOADS), top_n=int_env("OPEN_MODEL_TOP_N", DEFAULT_TOP_N), max_age_days=int_env("OPEN_MODEL_MAX_AGE_DAYS", DEFAULT_MAX_AGE_DAYS), limit_per_creator=optional_int_env("OPEN_MODEL_LIMIT_PER_CREATOR"), token=token, ) print( json.dumps( { "generated_at": payload["generated_at"], "groups": payload["summary"]["leaderboard_groups"], "artifacts": payload["summary"]["candidate_artifacts"], "html_path": payload["html_path"], }, sort_keys=True, ) ) return 0 if __name__ == "__main__": raise SystemExit(main())