DavMelchi commited on
Commit
eb773b0
·
1 Parent(s): 4ef0ce6

Add pyarrow/duckdb/openpyxl dependencies to KPI analysis requirements, fix KPI compare selector to expose all RATs KPIs regardless of group filter matching V1 behavior, and restrict top-N group additions to valid KPI candidates from compare options to avoid meta columns

Browse files
hf_spaces/kpi_analysis/requirements.txt CHANGED
@@ -4,3 +4,7 @@ pandas>=2.0
4
  numpy>=1.23
5
  plotly>=5.0
6
  xlsxwriter>=3.0
 
 
 
 
 
4
  numpy>=1.23
5
  plotly>=5.0
6
  xlsxwriter>=3.0
7
+
8
+ pyarrow>=14.0
9
+ duckdb>=0.9
10
+ openpyxl>=3.1
panel_app/kpi_health_check_panel_v2.py CHANGED
@@ -2108,11 +2108,11 @@ def _update_kpi_options() -> None:
2108
  if kpi_select.value not in filtered_kpis:
2109
  kpi_select.value = filtered_kpis[0] if filtered_kpis else None
2110
 
2111
- kpi_compare_select.options = filtered_kpis
 
 
2112
  if kpi_compare_select.value:
2113
- kpi_compare_select.value = [
2114
- k for k in kpi_compare_select.value if k in filtered_kpis
2115
- ]
2116
  return
2117
  return
2118
 
@@ -2208,8 +2208,12 @@ def _update_site_view(event=None) -> None:
2208
  selected = [str(kpi)] + selected
2209
 
2210
  if "Add top" in str(kpi_group_mode.value):
 
2211
  from_group = filter_kpis(
2212
- d.columns.tolist(), kpi_group_select.value, mode="Top-N", top_n=12
 
 
 
2213
  )[:12]
2214
  for gk in from_group:
2215
  if gk not in selected:
 
2108
  if kpi_select.value not in filtered_kpis:
2109
  kpi_select.value = filtered_kpis[0] if filtered_kpis else None
2110
 
2111
+ # Match V1 behavior: compare list always exposes all KPIs for the RAT,
2112
+ # while the main KPI dropdown can be filtered by group.
2113
+ kpi_compare_select.options = kpis
2114
  if kpi_compare_select.value:
2115
+ kpi_compare_select.value = [k for k in kpi_compare_select.value if k in kpis]
 
 
2116
  return
2117
  return
2118
 
 
2208
  selected = [str(kpi)] + selected
2209
 
2210
  if "Add top" in str(kpi_group_mode.value):
2211
+ # Ensure we only add real KPI candidates (avoid meta columns)
2212
  from_group = filter_kpis(
2213
+ list(kpi_compare_select.options or []),
2214
+ kpi_group_select.value,
2215
+ mode="Top-N",
2216
+ top_n=12,
2217
  )[:12]
2218
  for gk in from_group:
2219
  if gk not in selected: