File size: 1,970 Bytes
c754148 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 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()
|