Sid-WC121
initial
c21180c
Raw History Blame Contribute Delete
940 Bytes
"""FastAPI dependency injection."""
from __future__ import annotations
from fastapi import Depends, Request, HTTPException
from visual_notebook.session import Session, SessionStore
def get_session_store(request: Request) -> SessionStore:
return request.app.state.session_store
def get_duckdb_con(request: Request):
return request.app.state.duckdb_con
def get_session(
request: Request,
store: SessionStore = Depends(get_session_store),
con=Depends(get_duckdb_con),
) -> Session:
session_id = request.cookies.get("session_id")
session = store.get_or_create(session_id, con)
return session
def get_current_ref(session: Session = Depends(get_session)):
if session.current_ref is None:
raise HTTPException(status_code=400, detail="No dataset loaded. Upload a CSV first.")
return session.current_ref
def get_history(session: Session = Depends(get_session)):
return session.history