diagnose(trajectory): add diagnostics to identify why trace_count is 0
This commit is contained in:
+31
@@ -19,6 +19,7 @@ import logging
|
||||
import os
|
||||
import re
|
||||
import traceback
|
||||
from datetime import datetime
|
||||
from typing import Dict, List, Optional, Tuple
|
||||
|
||||
try:
|
||||
@@ -2096,6 +2097,36 @@ def choose_trajectory_title(axis_def: dict, axis: str, threshold: float = 0.65)
|
||||
except Exception:
|
||||
pass
|
||||
debug_enabled = get_debug_trajectories_enabled()
|
||||
# Add detailed diagnostics to understand why trace_count is 0
|
||||
if trace_count == 0:
|
||||
_last_trajectories_diagnostics.update(
|
||||
{
|
||||
"stage": "zero_traces",
|
||||
"positions_count": sum(len(pos) for pos in positions_by_window.values())
|
||||
if positions_by_window
|
||||
else 0,
|
||||
"party_map_count": len(party_map) if party_map else 0,
|
||||
"centroids_count": len(centroids) if centroids else 0,
|
||||
"selected_parties_count": len(selected_parties)
|
||||
if selected_parties
|
||||
else 0,
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
}
|
||||
)
|
||||
# Check if there are positions but no centroids (name mismatch)
|
||||
if positions_by_window and party_map and not centroids:
|
||||
# Sample some MP names from positions
|
||||
sample_mps = []
|
||||
for window, positions in list(positions_by_window.items())[:1]:
|
||||
sample_mps = list(positions.keys())[:5]
|
||||
break
|
||||
# Check if these MPs are in party_map
|
||||
matched = sum(1 for mp in sample_mps if mp in party_map)
|
||||
_last_trajectories_diagnostics["name_match_check"] = {
|
||||
"sample_mps": sample_mps,
|
||||
"matched_in_party_map": matched,
|
||||
"sample_size": len(sample_mps),
|
||||
}
|
||||
if trace_count == 0:
|
||||
try:
|
||||
st.info(
|
||||
|
||||
Reference in New Issue
Block a user