|
|
|
|
@ -162,12 +162,14 @@ def _load_motion_vectors(db_path: str, window_id: str) -> Dict[int, np.ndarray]: |
|
|
|
|
import duckdb |
|
|
|
|
|
|
|
|
|
conn = duckdb.connect(db_path, read_only=True) |
|
|
|
|
rows = conn.execute( |
|
|
|
|
"SELECT entity_id, vector FROM svd_vectors " |
|
|
|
|
"WHERE entity_type = 'motion' AND window_id = ?", |
|
|
|
|
[window_id], |
|
|
|
|
).fetchall() |
|
|
|
|
conn.close() |
|
|
|
|
try: |
|
|
|
|
rows = conn.execute( |
|
|
|
|
"SELECT entity_id, vector FROM svd_vectors " |
|
|
|
|
"WHERE entity_type = 'motion' AND window_id = ?", |
|
|
|
|
[window_id], |
|
|
|
|
).fetchall() |
|
|
|
|
finally: |
|
|
|
|
conn.close() |
|
|
|
|
result: Dict[int, np.ndarray] = {} |
|
|
|
|
for entity_id, vector_raw in rows: |
|
|
|
|
try: |
|
|
|
|
@ -248,11 +250,13 @@ def _fetch_motion_titles( |
|
|
|
|
|
|
|
|
|
placeholders = ", ".join("?" for _ in motion_ids) |
|
|
|
|
conn = duckdb.connect(db_path, read_only=True) |
|
|
|
|
rows = conn.execute( |
|
|
|
|
f"SELECT id, title, date FROM motions WHERE id IN ({placeholders})", |
|
|
|
|
motion_ids, |
|
|
|
|
).fetchall() |
|
|
|
|
conn.close() |
|
|
|
|
try: |
|
|
|
|
rows = conn.execute( |
|
|
|
|
f"SELECT id, title, date FROM motions WHERE id IN ({placeholders})", |
|
|
|
|
motion_ids, |
|
|
|
|
).fetchall() |
|
|
|
|
finally: |
|
|
|
|
conn.close() |
|
|
|
|
return {int(row[0]): (str(row[1]), str(row[2])) for row in rows} |
|
|
|
|
except Exception as exc: |
|
|
|
|
_logger.debug("Failed to fetch motion titles: %s", exc) |
|
|
|
|
|