From 9cb368b9c8e50faafd6d6f5f08e8fe74fd244822 Mon Sep 17 00:00:00 2001 From: Krystine Sherwin <93062060+KrystalDelusion@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:26:51 +1200 Subject: [PATCH] Re-order status evaluation Always add the current row to the status map if there's a key error instead of trying to be clever with `.get()` and `None`s. --- sbysrc/sby_status.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sbysrc/sby_status.py b/sbysrc/sby_status.py index 9daa76e..f608b18 100644 --- a/sbysrc/sby_status.py +++ b/sbysrc/sby_status.py @@ -465,24 +465,26 @@ class SbyStatusDb: except KeyError: prop_map[key] = prop_status_map = {} - current_depth, _, current_kind = prop_status_map.get(status, (None, None, None)) + try: + current_depth, _, current_kind = prop_status_map[status] + except KeyError: + prop_status_map[status] = (this_depth, row, this_kind) + continue + update_map = False - if current_depth is None: - if current_kind is None: - update_map = True - elif this_kind in ['fst', 'vcd']: - # prefer traces over witness files - update_map = True - elif this_depth is not None: + if current_depth is None and current_kind is None: + # no depth or kind to compare, just take latest data + update_map = True + elif this_depth is not None and this_depth != current_depth: if status == 'FAIL' and this_depth < current_depth: # earliest fail update_map = True elif status != 'FAIL' and this_depth > current_depth: # latest non-FAIL update_map = True - elif this_depth == current_depth and this_kind in ['fst', 'vcd']: - # prefer traces over witness files - update_map = True + elif this_kind in ['fst', 'vcd']: + # prefer traces over witness files + update_map = True if update_map: prop_status_map[status] = (this_depth, row, this_kind)