""" 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, )