Spaces:
Running
Running
| """ASGI app entrypoint expected by openenv validate.""" | |
| from __future__ import annotations | |
| import importlib.util | |
| import os | |
| import sys | |
| from pathlib import Path | |
| from typing import NoReturn | |
| import uvicorn | |
| def _load_impl_app() -> object: | |
| """Load FastAPI app from code-review-env/server.py.""" | |
| repo_root = Path(__file__).resolve().parents[1] | |
| impl_root = repo_root / "code-review-env" | |
| impl_server = impl_root / "server.py" | |
| if not impl_server.exists(): | |
| raise RuntimeError("Implementation server not found at code-review-env/server.py") | |
| if str(impl_root) not in sys.path: | |
| sys.path.insert(0, str(impl_root)) | |
| spec = importlib.util.spec_from_file_location("code_review_env_impl_server", impl_server) | |
| if spec is None or spec.loader is None: | |
| raise RuntimeError("Failed to create module spec for implementation server") | |
| module = importlib.util.module_from_spec(spec) | |
| sys.modules["code_review_env_impl_server"] = module | |
| spec.loader.exec_module(module) | |
| if not hasattr(module, "app"): | |
| raise RuntimeError("Implementation server module does not define app") | |
| return getattr(module, "app") | |
| app = _load_impl_app() | |
| def main() -> NoReturn: | |
| """Run the ASGI app with uvicorn on port 7860.""" | |
| host = os.getenv("HOST", "0.0.0.0") | |
| port = int(os.getenv("PORT", "7860")) | |
| uvicorn.run("server:app", host=host, port=port) | |
| raise SystemExit(0) | |
| if __name__ == "__main__": | |
| main() | |