qwenjev / scripts /push_hf.py
tchbcb's picture
QwenJev v0.4.3: 25-public-games eval in-repo (run_eval incremental report, fetch_games, CPU feasibility verified)
2bc1c6b verified
Raw History Blame Contribute Delete
2.3 kB
"""Push this repository to a public HuggingFace model repo.
Usage:
HF_TOKEN=hf_xxx python scripts/push_hf.py [--repo tchbcb/qwenjev]
Notes:
* the token is read from the environment or ~/.secrets - never committed;
* the repo is created public (repo_type='model');
* README.md is intentionally left EMPTY per the project owner's request.
"""
from __future__ import annotations
import argparse
import os
import sys
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
DEFAULT_REPO = "tchbcb/qwenjev"
def resolve_token() -> str:
token = os.environ.get("HF_TOKEN", "").strip()
if token:
return token
for p in (Path.home() / ".secrets" / "hf_token",
Path("/home/z/my-project/.secrets/hf_token")):
if p.exists():
return p.read_text().strip()
raise SystemExit("no HF_TOKEN found (env var or ~/.secrets/hf_token)")
def main() -> None:
ap = argparse.ArgumentParser()
ap.add_argument("--repo", default=DEFAULT_REPO)
args = ap.parse_args()
from huggingface_hub import HfApi
api = HfApi(token=resolve_token())
me = api.whoami()
print(f"authenticated as: {me.get('name')} (role={me.get('auth', {}).get('accessToken', {}).get('role')})")
# never upload regenerable artifacts or secrets to the hub
ignore_patterns = [
".git*", ".secrets/*", ".env", "*.token",
"checkpoints/*", "data/traces/*", "data/dataset/*",
"environment_files/*", "build/*", "kaggle_kernel/*",
"__pycache__/*", "*.pyc", ".venv/*", ".pytest_cache/*",
"*.pt", "*.parquet", "eval_report.json", ".ruff_cache/*",
]
api.create_repo(repo_id=args.repo, repo_type="model", private=True,
exist_ok=True) # create private first, flip to public after upload
api.upload_folder(
repo_id=args.repo,
repo_type="model",
folder_path=str(REPO_ROOT),
ignore_patterns=ignore_patterns,
commit_message="QwenJev v0.4.3: 25-public-games eval in-repo (run_eval incremental report, fetch_games, CPU feasibility verified)",
)
api.update_repo_settings(repo_id=args.repo, repo_type="model", private=False)
print(f"public repo ready -> https://huggingface.co/{args.repo}")
if __name__ == "__main__":
main()