From e2d334e4ad273518804d7563cc3dfc2ffe461e11 Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Fri, 31 Jul 2026 10:27:39 +0100 Subject: [PATCH 1/2] Repost calls can't always find types --- src/murfey/cli/repost_failed_calls.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/murfey/cli/repost_failed_calls.py b/src/murfey/cli/repost_failed_calls.py index 431b61fe7..e7f0c7f32 100644 --- a/src/murfey/cli/repost_failed_calls.py +++ b/src/murfey/cli/repost_failed_calls.py @@ -136,10 +136,19 @@ def handle_failed_posts(messages_path: list[Path], murfey_db: Session): for call_arg in expected_args.args: call_arg_type = expected_args.annotations.get(call_arg, str) if call_arg in call_kwargs.keys(): - function_call_dict[call_arg] = call_arg_type(call_kwargs[call_arg]) + function_call_dict[call_arg] = ( + call_arg_type(call_kwargs[call_arg]) + if str(call_arg_type) != "str" + else call_kwargs[call_arg] + ) elif call_arg == "db": function_call_dict["db"] = murfey_db else: + if isinstance(call_arg_type, str): + try: + call_arg_type = getattr(murfey.util.models, call_arg_type) + except Exception as e: + print(f"Failed to find type: {e}") print(call_data, call_arg_type, call_arg) function_call_dict[call_arg] = call_arg_type(**call_data) except TypeError as e: From d0dc5da5509af370f1e71fdb955ea1a5a006183f Mon Sep 17 00:00:00 2001 From: yxd92326 Date: Fri, 31 Jul 2026 10:34:07 +0100 Subject: [PATCH 2/2] Take last grid square for avoiding duplicates --- src/murfey/workflows/spa/flush_spa_preprocess.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/murfey/workflows/spa/flush_spa_preprocess.py b/src/murfey/workflows/spa/flush_spa_preprocess.py index f3b69073e..5cb9e48cb 100644 --- a/src/murfey/workflows/spa/flush_spa_preprocess.py +++ b/src/murfey/workflows/spa/flush_spa_preprocess.py @@ -3,6 +3,7 @@ from typing import Optional from PIL import Image +from sqlalchemy import desc from sqlalchemy.exc import NoResultFound from sqlmodel import Session, select @@ -70,13 +71,15 @@ def register_grid_square( select(DataCollectionGroup) .where(DataCollectionGroup.session_id == session_id) .where(DataCollectionGroup.sample == grid_square_params.sample) - ).one() + .order_by(desc(DataCollectionGroup.id)) + ).first() else: dcg = murfey_db.exec( select(DataCollectionGroup) .where(DataCollectionGroup.session_id == session_id) .where(DataCollectionGroup.tag == grid_square_params.tag) - ).one() + .order_by(desc(DataCollectionGroup.id)) + ).first() grid_square_query = murfey_db.exec( select(GridSquare) .where(GridSquare.name == gsid)