@ -2931,7 +2931,33 @@ def build_svd_components_tab(db_path: str) -> None:
else { }
)
else :
party_scores = party_scores_default
# Components 3-10: use SVD vectors with year selection
# Get available windows from svd_vectors
available_windows = get_uniform_dim_windows ( db_path )
year_windows = sorted ( w for w in available_windows if w != " current_parliament " )
has_current = " current_parliament " in available_windows
svd_windows = year_windows + ( [ " current_parliament " ] if has_current else [ ] )
def _svd_window_label ( w : str ) - > str :
if w == " current_parliament " :
return " Huidig parlement "
return w
with col1 :
svd_window = st . selectbox (
" Jaar " ,
options = svd_windows ,
index = len ( svd_windows ) - 1 , # default: current_parliament
format_func = _svd_window_label ,
key = f " svd_window_ { comp_sel } " ,
)
# Load party scores for the selected window
if svd_window == " current_parliament " :
party_scores = party_scores_default
else :
party_scores = load_party_axis_scores_for_window ( db_path , svd_window )
# For components 3-10, compute MP counts from party_mp_vectors
party_mp_counts = (
{ p : len ( v ) for p , v in party_mp_vectors . items ( ) } if party_mp_vectors else { }