"""Push the locally-prepared data inputs (sentences + voices + phoneme LM + CMUdict cache) to a HuggingFace dataset repo so the Colab notebook can `snapshot_download` them in Cell 2. Default target: akshan-main/glossolalia-inputs (override via --repo). """ import argparse import sys from pathlib import Path def main(): p = argparse.ArgumentParser() p.add_argument("--src", default="data", help="local dir with sentences.txt, voices/, phoneme_lm.npz, cmudict.dict") p.add_argument("--repo", default="akshan-main/glossolalia-inputs") p.add_argument("--private", action="store_true") args = p.parse_args() src = Path(args.src) required = ["sentences.txt", "phoneme_lm.npz", "voices"] missing = [r for r in required if not (src / r).exists()] if missing: print(f"ERROR: missing in {src}: {missing}", file=sys.stderr); sys.exit(1) from huggingface_hub import HfApi api = HfApi() api.create_repo(args.repo, repo_type="dataset", private=args.private, exist_ok=True) print(f"uploading {src} -> dataset {args.repo} (private={args.private})", file=sys.stderr) api.upload_folder( folder_path=str(src), repo_id=args.repo, repo_type="dataset", allow_patterns=["sentences.txt", "phoneme_lm.npz", "cmudict.dict", "voices/*.wav", "voices/*.txt"], ) print(f"DONE: https://huggingface.co/datasets/{args.repo}") if __name__ == "__main__": main()