| from fastapi import Request | |
| from backend.app.engine.search_engine import ASOSSearchEngine | |
| from backend.app.exceptions import EngineNotReadyError | |
| def get_engine(request: Request) -> ASOSSearchEngine: | |
| """FastAPI dependency: retrieve the engine singleton from app state.""" | |
| engine: ASOSSearchEngine = getattr(request.app.state, "engine", None) | |
| if engine is None or not engine._is_ready: | |
| raise EngineNotReadyError("Search engine is not ready") | |
| return engine | |