Spaces:
Running
Running
| from __future__ import annotations | |
| import importlib.util | |
| import os | |
| import sys | |
| from pathlib import Path | |
| ROOT = Path(__file__).parent | |
| BUILD_ROOT = ROOT / "build" / "pyc" | |
| ASSET_ROOT = ROOT / "assets" | |
| COMPILED_ASSET_ROOT = BUILD_ROOT / "assets" | |
| for entry in [str(BUILD_ROOT), str(ROOT)]: | |
| if entry not in sys.path: | |
| sys.path.insert(0, entry) | |
| if ASSET_ROOT.exists() and not COMPILED_ASSET_ROOT.exists(): | |
| try: | |
| COMPILED_ASSET_ROOT.parent.mkdir(parents=True, exist_ok=True) | |
| COMPILED_ASSET_ROOT.symlink_to(ASSET_ROOT, target_is_directory=True) | |
| except OSError: | |
| import shutil | |
| shutil.copytree(ASSET_ROOT, COMPILED_ASSET_ROOT, dirs_exist_ok=True) | |
| compiled = BUILD_ROOT / "space_app_impl.pyc" | |
| if not compiled.exists(): | |
| raise RuntimeError("Missing compiled HF Space runtime: build/pyc/space_app_impl.pyc") | |
| spec = importlib.util.spec_from_file_location("space_app_impl_compiled", compiled) | |
| if spec is None or spec.loader is None: | |
| raise RuntimeError("Failed to load compiled HF Space runtime.") | |
| module = importlib.util.module_from_spec(spec) | |
| try: | |
| spec.loader.exec_module(module) | |
| except ImportError as exc: | |
| raise RuntimeError( | |
| "Failed to load compiled HF Space runtime. " | |
| "The published .pyc files were likely built with a different Python version or " | |
| "the runtime dependencies are missing. Rebuild .public-dist with Python 3.13 " | |
| "and ensure requirements are installed." | |
| ) from exc | |
| app = getattr(module, "app", None) | |
| demo = getattr(module, "demo", None) | |
| if app is None: | |
| raise RuntimeError("Compiled HF Space runtime did not expose 'app'.") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| port = int(os.environ.get("PORT", "7860")) | |
| uvicorn.run(app, host="0.0.0.0", port=port, log_level="info") | |