VortexCommerceBackend / upload_to_hf.py
hisham-cmd's picture
Optimized Sync: Differential Upload & Performance Tweak
60470bc
Raw
History Blame Contribute Delete
2.15 kB
import os
import shutil
from huggingface_hub import HfApi
from dotenv import load_dotenv
load_dotenv()
REPO_ID = "hisham-cmd/VortexCommerceBackend"
HF_TOKEN = os.environ.get("HF_TOKEN")
api = HfApi(token=HF_TOKEN)
def prepare_assets():
"""Prepare any assets like fonts before uploading."""
print(">>> [PREPARE] Preparing assets...")
font_src = os.path.join("..", "frontend", "public", "ArbFONTS-cocon-next-arabic.ttf")
font_dest_dir = "fonts"
font_dest = os.path.join(font_dest_dir, "ArbFONTS-cocon-next-arabic.ttf")
if os.path.exists(font_src):
os.makedirs(font_dest_dir, exist_ok=True)
shutil.copy(font_src, font_dest)
print(f"[*] Copied font: {font_dest}")
else:
print(f"[!] Warning: Font source not found at {font_src}")
def upload():
# 1. Prepare assets
prepare_assets()
print(f"\n>>> [SYNC] Uploading to Hugging Face: https://huggingface.co/spaces/{REPO_ID}")
print("[*] Using DIFFERENTIAL SYNC (fastest) - only changed files will be uploaded.")
try:
# Ensure repo exists
api.create_repo(repo_id=REPO_ID, repo_type="space", space_sdk="docker", private=False, exist_ok=True)
# Upload folder using both .hfignore and explicit ignore patterns for speed
api.upload_folder(
repo_id=REPO_ID,
folder_path=".",
repo_type="space",
commit_message="Optimized Sync: Differential Upload & Performance Tweak",
ignore_patterns=[
".git/*", ".venv/*", "venv/*", "__pycache__/*",
"*.db", "*.sqlite*", ".env*", "*.env",
"scripts/*", "tests/*", "node_modules/*", ".pytest_cache/*",
"*.pyc", "*.pyo"
],
delete_patterns=["*.pyc", "__pycache__/*"], # Extra cleanup
)
print("\n" + "="*50)
print(f"[OK] SUCCESS!")
print(f"[SYS] Differential sync complete.")
print(f"[LINK] https://huggingface.co/spaces/{REPO_ID}")
print("="*50)
except Exception as e:
print(f"\n[ERROR] {e}")
if __name__ == "__main__":
upload()