Download push_hf.py from coderofpears/clankerDiffusion-base: direct link, hf CLI and curl.
- Browser
- Download file 3.4 kB
-
https://huggingface.co/coderofpears/clankerDiffusion-base/resolve/main/push_hf.py
- Command line
-
hf download hf://coderofpears/clankerDiffusion-base/push_hf.py
-
curl -L -o push_hf.py https://huggingface.co/coderofpears/clankerDiffusion-base/resolve/main/push_hf.py
3.4 kB
| """ | |
| clankerDiffusion — push artifacts to HuggingFace (via huggingface_hub). | |
| python push_hf.py --what all # code + tokenizer + rag corpus + train.bin | |
| python push_hf.py --what code # .py sources + tokenizer + rag corpus | |
| python push_hf.py --what data # train.bin + tokenizer + rag corpus | |
| python push_hf.py --what ckpt # latest checkpoints | |
| Repos (under your HF user): | |
| coderofpears/clankerDiffusion-base code + tokenizer + rag corpus | |
| coderofpears/clankerDiffusion-data train.bin (packed training corpus) | |
| coderofpears/clankerDiffusion-checkpoints model checkpoints (.pt) | |
| """ | |
| import os | |
| import argparse | |
| import tempfile | |
| import shutil | |
| import fnmatch | |
| HERE = os.path.dirname(os.path.abspath(__file__)) | |
| DATADIR = os.path.join(HERE, "data") | |
| CKPTDIR = os.path.join(HERE, "checkpoints") | |
| CODE_REPO = "coderofpears/clankerDiffusion-base" | |
| DATA_REPO = "coderofpears/clankerDiffusion-data" | |
| CKPT_REPO = "coderofpears/clankerDiffusion-checkpoints" | |
| PY_SOURCES = ["model.py", "tokenizer.py", "prep.py", "train.py", "infer.py", | |
| "tools.py", "agent.py", "rag.py", "build_rag.py", "rag_finetune.py", | |
| "colab_train.py", "modal_train.py", "push_hf.py", "upload_artifacts.py"] | |
| def _token(): | |
| # prefer explicit env, else read from .env | |
| tok = os.environ.get("HF_TOKEN") | |
| if tok: | |
| return tok | |
| for p in (os.path.join(HERE, ".env"), os.path.join(os.path.expanduser("~"), ".env")): | |
| if os.path.exists(p): | |
| for line in open(p, encoding="utf-8"): | |
| line = line.strip() | |
| if line.startswith("HF_TOKEN"): | |
| return line.split("=", 1)[1].strip().strip('"').strip("'") | |
| raise SystemExit("HF_TOKEN not found in env or .env") | |
| def _upload(repo, local, patterns): | |
| from huggingface_hub import HfApi | |
| api = HfApi(token=_token()) | |
| try: | |
| api.create_repo(repo_id=repo, repo_type="model", exist_ok=True) | |
| except Exception as e: | |
| print(f"[hf] create_repo note: {e}") | |
| stage = tempfile.mkdtemp() | |
| try: | |
| for root, _, files in os.walk(local): | |
| for f in files: | |
| rel = os.path.relpath(os.path.join(root, f), local) | |
| if any(fnmatch.fnmatch(rel, p) or fnmatch.fnmatch(f, p) for p in patterns): | |
| dst = os.path.join(stage, rel) | |
| os.makedirs(os.path.dirname(dst), exist_ok=True) | |
| shutil.copy(os.path.join(root, f), dst) | |
| if not os.listdir(stage): | |
| print(f"[hf] nothing matched for {repo}") | |
| return | |
| api.upload_folder(folder_path=stage, repo_id=repo, repo_type="model") | |
| print(f"[hf] -> {repo}") | |
| finally: | |
| shutil.rmtree(stage, ignore_errors=True) | |
| def push_code(): | |
| _upload(CODE_REPO, HERE, PY_SOURCES + ["data/tokenizer.json", "data/rag_corpus.txt", "README.md"]) | |
| def push_data(): | |
| _upload(DATA_REPO, DATADIR, ["train.bin", "tokenizer.json", "rag_corpus.txt"]) | |
| def push_ckpt(): | |
| _upload(CKPT_REPO, CKPTDIR, ["*.pt"]) | |
| def main(): | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--what", default="all", choices=["all", "code", "data", "ckpt"]) | |
| a = ap.parse_args() | |
| if a.what in ("all", "code"): | |
| push_code() | |
| if a.what in ("all", "data"): | |
| push_data() | |
| if a.what in ("all", "ckpt"): | |
| push_ckpt() | |
| if __name__ == "__main__": | |
| main() | |