ldov
/

openjevv / code /hf_publish.py
ldov's picture AlexWortega's picture
Duplicate from AlexWortega/openjev
e46c127
Raw History Blame Contribute Delete
1.56 kB
#!/usr/bin/env python
"""Publish checkpoints / model card / results to the HF Hub repo. Token from HF_TOKEN env (never written to disk here).
HF_TOKEN=... python hf_publish.py --repo AlexWortega/openjev --ckpt ckpt/qwen3.5-4b-nli --subdir qwen3.5-4b-nli
HF_TOKEN=... python hf_publish.py --repo AlexWortega/openjev --files README.md results/*.json results/*.mp4 assets/*.png
"""
import argparse, glob, os
from huggingface_hub import HfApi
ap = argparse.ArgumentParser()
ap.add_argument("--repo", default="AlexWortega/openjev")
ap.add_argument("--ckpt", default=None)
ap.add_argument("--subdir", default=None, help="path in repo for the checkpoint (default: root)")
ap.add_argument("--files", nargs="*", default=[])
ap.add_argument("--dest", default="", help="repo folder for --files")
args = ap.parse_args()
api = HfApi(token=os.environ["HF_TOKEN"])
api.create_repo(args.repo, repo_type="model", exist_ok=True)
if args.ckpt:
api.upload_folder(folder_path=args.ckpt, repo_id=args.repo, path_in_repo=args.subdir or "", repo_type="model",
ignore_patterns=["*_trainer/*", "checkpoint-*"], commit_message=f"upload {os.path.basename(args.ckpt)}")
print("uploaded", args.ckpt)
for pat in args.files:
for f in glob.glob(pat):
api.upload_file(path_or_fileobj=f, path_in_repo=os.path.join(args.dest, os.path.basename(f)) if args.dest else os.path.basename(f) if not f.startswith("results/") else f,
repo_id=args.repo, repo_type="model", commit_message=f"add {f}")
print("uploaded", f)