bochen2079's picture
download
raw
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)

Xet Storage Details

Size:
1.56 kB
·
Xet hash:
e1105a48b470f23cfe8e27e2834593b1aa732c4e66382367d65d0d6fde1ddb29

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.