LordofMonarchs's picture
Upload folder using huggingface_hub
c754148 verified
Raw
History Blame Contribute Delete
1.97 kB
import argparse
import os
from huggingface_hub import upload_folder, create_repo
def main():
parser = argparse.ArgumentParser(description="Upload project to Hugging Face Hub cleanly without virtual environment files")
parser.add_argument("--repo", required=True, help="Hugging Face repo ID (e.g., LordofMonarchs/intelligent-candidate-ranking-system)")
parser.add_argument("--type", default="space", choices=["space", "model", "dataset"], help="Repository type")
args = parser.parse_args()
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ignore_patterns = [
".venv/*",
".venv/**",
"venv/*",
"venv/**",
".git/*",
".git/**",
".vscode/*",
".vscode/**",
"__pycache__/*",
"**/__pycache__/*",
"**/*.py[cod]",
"candidates.jsonl", # 487MB raw candidates file
"*.csv",
"logs/*",
"logs/**",
"*.log",
"reasoning_trace.jsonl",
"scratch/*",
"scratch/**",
"diagnostics/*",
"diagnostics/**",
"_tmp_*",
]
print(f"Checking/creating Hugging Face {args.type} repo: '{args.repo}'...")
try:
create_repo(repo_id=args.repo, repo_type=args.type, exist_ok=True)
except Exception as e:
print(f"Note on create_repo: {e}")
print(f"Starting clean upload of '{project_root}' to Hugging Face {args.type}: '{args.repo}'...")
print("Ignoring .venv, .git, logs, and large local datasets...")
url = upload_folder(
folder_path=project_root,
repo_id=args.repo,
repo_type=args.type,
ignore_patterns=ignore_patterns,
)
print("\n============================================================")
print("SUCCESS! Upload complete.")
print(f"View live repository at: {url}")
print("============================================================")
if __name__ == "__main__":
main()