fix: open DuckDB read_only in trajectory helpers to avoid lock conflict with Streamlit
Both _load_window_ids and _load_mp_vectors_for_window only read from the DB. Opening without read_only=True caused an IOException when Streamlit already held a read-only lock, silently returning an empty scree plot.
This commit is contained in:
@@ -109,7 +109,7 @@ def _procrustes_align_windows(
|
||||
|
||||
def _load_window_ids(db_path: str) -> List[str]:
|
||||
"""Return all distinct window IDs from svd_vectors, in lexicographic order."""
|
||||
conn = duckdb.connect(db_path)
|
||||
conn = duckdb.connect(db_path, read_only=True)
|
||||
rows = conn.execute(
|
||||
"SELECT DISTINCT window_id FROM svd_vectors WHERE entity_type = 'mp' ORDER BY window_id"
|
||||
).fetchall()
|
||||
@@ -118,7 +118,7 @@ def _load_window_ids(db_path: str) -> List[str]:
|
||||
|
||||
|
||||
def _load_mp_vectors_for_window(db_path: str, window_id: str) -> Dict[str, np.ndarray]:
|
||||
conn = duckdb.connect(db_path)
|
||||
conn = duckdb.connect(db_path, read_only=True)
|
||||
rows = conn.execute(
|
||||
"SELECT entity_id, vector FROM svd_vectors WHERE window_id = ? AND entity_type = 'mp'",
|
||||
(window_id,),
|
||||
|
||||
Reference in New Issue
Block a user