edgeeda-agent / scripts /publish_hf.py
SamChYe's picture
Publish EdgeEDA agent
aa677e3 verified
#!/usr/bin/env python3
from __future__ import annotations
import argparse
import os
from pathlib import Path
from huggingface_hub import HfApi, upload_file, upload_folder
def main() -> None:
p = argparse.ArgumentParser(description="Publish EdgeEDA agent to Hugging Face Hub")
p.add_argument("--repo-id", required=True, help="Repo id, e.g. org/name or user/name")
p.add_argument("--repo-type", default="model", choices=["model", "dataset", "space"])
p.add_argument("--private", action="store_true", help="Create a private repo")
p.add_argument("--token", default=None, help="HF token (or set HF_TOKEN)")
p.add_argument("--commit-message", default="Add EdgeEDA agent", help="Commit message")
args = p.parse_args()
token = args.token or os.environ.get("HF_TOKEN")
if not token:
raise SystemExit("Missing HF token. Provide --token or set HF_TOKEN.")
api = HfApi(token=token)
api.create_repo(
repo_id=args.repo_id,
repo_type=args.repo_type,
private=args.private,
exist_ok=True,
)
root = Path(__file__).resolve().parents[1]
readme_hf = root / "README_HF.md"
if not readme_hf.exists():
raise SystemExit(f"Missing {readme_hf}")
upload_file(
path_or_fileobj=str(readme_hf),
path_in_repo="README.md",
repo_id=args.repo_id,
repo_type=args.repo_type,
token=token,
commit_message=args.commit_message,
)
allow_patterns = [
"src/**",
"configs/**",
"scripts/**",
"docker/**",
"LICENSE",
"pyproject.toml",
"setup.py",
"requirements.txt",
"README_RUN.md",
"QUICK_START.md",
"EXECUTE_IN_DOCKER.md",
"CHANGELOG_FIXES.md",
]
ignore_patterns = [
"OpenROAD-flow-scripts/**",
"runs/**",
"IEEE_EdgeEDA_Agent_ISVLSI/**",
"build/**",
"**/__pycache__/**",
"**/*.pyc",
"**/*.sqlite",
"**/*.png",
"**/*.pdf",
"**/*.log",
"README.md",
"README_HF.md",
"UNKNOWN.egg-info/**",
"src/edgeeda.egg-info/**",
"*.egg-info/**",
]
upload_folder(
folder_path=str(root),
repo_id=args.repo_id,
repo_type=args.repo_type,
token=token,
commit_message=args.commit_message,
allow_patterns=allow_patterns,
ignore_patterns=ignore_patterns,
)
if __name__ == "__main__":
main()