Spaces:
Running
Running
import os | |
import sys | |
from pathlib import Path | |
from huggingface_hub import snapshot_download | |
import importlib.util | |
# from dotenv import load_dotenv | |
# load_dotenv() | |
def setup_cache_directory(): | |
cache_dir = Path("cache") | |
cache_dir.mkdir(exist_ok=True) | |
return cache_dir | |
def download_space(cache_dir): | |
token = os.environ.get("HF_TOKEN") | |
repo_id = os.environ.get("REPO_ID") | |
if not token or not repo_id: | |
return False | |
try: | |
snapshot_download( | |
repo_id=repo_id, | |
repo_type="space", | |
local_dir=cache_dir, | |
token=token | |
) | |
return True | |
except: | |
return False | |
def load_app(cache_dir): | |
sys.path.insert(0, str(cache_dir)) | |
app_path = cache_dir / "app.py" | |
spec = importlib.util.spec_from_file_location("app", app_path) | |
app = importlib.util.module_from_spec(spec) | |
spec.loader.exec_module(app) | |
return app.demo | |
if __name__ == "__main__": | |
cache_dir = setup_cache_directory() | |
if download_space(cache_dir): | |
demo = load_app(cache_dir) | |
demo.launch() |