myanmar-ghost / upload_to_huggingface.py
amkyawdev's picture
Add upload_to_huggingface.py
bab68e2 verified
Raw
History Blame Contribute Delete
3.54 kB
"""
Upload Myanmar Ghost project to HuggingFace Hub.
Usage:
python upload_to_huggingface.py --repo_id amkyawdev/myanmar-ghost
"""
import argparse
import os
import sys
from pathlib import Path
# Add src to path for imports
sys.path.insert(0, str(Path(__file__).parent))
from huggingface_hub import HfApi, create_repo, upload_folder
def upload_to_huggingface(
repo_id: str,
local_path: str = ".",
commit_message: str = "Initial upload: Myanmar Ghost project",
token: str = None,
):
"""Upload project to HuggingFace Hub."""
api = HfApi()
# Get token from env if not provided
if token is None:
token = os.environ.get("HF_TOKEN")
if token is None:
raise ValueError(
"HF_TOKEN not found. Please set HF_TOKEN environment variable:\n"
"export HF_TOKEN=hf_xxxx\n"
"Or get your token from: https://huggingface.co/settings/tokens"
)
print(f"πŸ”„ Uploading to https://huggingface.co/{repo_id}")
# Create repo if doesn't exist
try:
create_repo(
repo_id=repo_id,
repo_type="space",
exist_ok=True,
token=token,
)
print(f"βœ… Repository created/verified: {repo_id}")
except Exception as e:
print(f"⚠️ Could not create Space repo: {e}")
print(" Creating as model repo instead...")
create_repo(
repo_id=repo_id,
repo_type="model",
exist_ok=True,
token=token,
)
# Files/folders to upload
upload_items = [
("src", "src"),
("configs", "configs"),
("scripts", "scripts"),
("docs", "docs"),
("tests", "tests"),
("notebooks", "notebooks"),
("deployment", "deployment"),
("README.md", "README.md"),
("README_my.md", "README_my.md"),
("requirements.txt", "requirements.txt"),
("requirements_dev.txt", "requirements_dev.txt"),
("setup.py", "setup.py"),
("pyproject.toml", "pyproject.toml"),
(".gitignore", ".gitignore"),
]
# Upload each folder/file
for local_item, repo_item in upload_items:
local_path_item = Path(local_path) / local_item
if local_path_item.exists():
print(f"πŸ“€ Uploading: {local_item}")
try:
api.upload_folder(
folder_path=str(local_path_item),
repo_id=repo_id,
repo_type="model",
commit_message=f"Upload {local_item}",
token=token,
)
print(f" βœ… Uploaded: {local_item}")
except Exception as e:
print(f" ❌ Failed: {e}")
print(f"\nπŸŽ‰ Successfully uploaded to https://huggingface.co/{repo_id}")
print(f"\nView your repo at: https://huggingface.co/{repo_id}/tree/main")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Upload Myanmar Ghost to HuggingFace")
parser.add_argument(
"--repo_id",
type=str,
default="amkyawdev/myanmar-ghost",
help="HuggingFace repository ID (default: amkyawdev/myanmar-ghost)"
)
parser.add_argument(
"--token",
type=str,
default=None,
help="HuggingFace token (or set HF_TOKEN env variable)"
)
args = parser.parse_args()
upload_to_huggingface(
repo_id=args.repo_id,
token=args.token,
)