kshitijthakkar commited on
Commit
02e6639
·
1 Parent(s): 450ce36

Fix tuple key serialization error in analyze_results

Browse files

Flatten multi-index columns from groupby().agg() before converting
to dict. Changes tuple keys like ('success', 'count') to flat strings
like 'success_count' to allow JSON serialization.

Files changed (1) hide show
  1. mcp_tools.py +10 -4
mcp_tools.py CHANGED
@@ -630,18 +630,24 @@ async def analyze_results(
630
  # Analyze by category/difficulty
631
  category_stats = {}
632
  if 'category' in df_sample.columns:
633
- category_stats = df_sample.groupby('category').agg({
634
  'success': ['count', 'sum', 'mean'],
635
  'execution_time_ms': 'mean',
636
  'cost_usd': 'sum'
637
- }).to_dict()
 
 
 
638
 
639
  difficulty_stats = {}
640
  if 'difficulty' in df_sample.columns:
641
- difficulty_stats = df_sample.groupby('difficulty').agg({
642
  'success': ['count', 'sum', 'mean'],
643
  'execution_time_ms': 'mean'
644
- }).to_dict()
 
 
 
645
 
646
  # Find slowest tests
647
  slowest_tests = df_sample.nlargest(5, 'execution_time_ms')[
 
630
  # Analyze by category/difficulty
631
  category_stats = {}
632
  if 'category' in df_sample.columns:
633
+ cat_agg = df_sample.groupby('category').agg({
634
  'success': ['count', 'sum', 'mean'],
635
  'execution_time_ms': 'mean',
636
  'cost_usd': 'sum'
637
+ })
638
+ # Flatten multi-index columns
639
+ cat_agg.columns = ['_'.join(col).strip() for col in cat_agg.columns.values]
640
+ category_stats = cat_agg.to_dict('index')
641
 
642
  difficulty_stats = {}
643
  if 'difficulty' in df_sample.columns:
644
+ diff_agg = df_sample.groupby('difficulty').agg({
645
  'success': ['count', 'sum', 'mean'],
646
  'execution_time_ms': 'mean'
647
+ })
648
+ # Flatten multi-index columns
649
+ diff_agg.columns = ['_'.join(col).strip() for col in diff_agg.columns.values]
650
+ difficulty_stats = diff_agg.to_dict('index')
651
 
652
  # Find slowest tests
653
  slowest_tests = df_sample.nlargest(5, 'execution_time_ms')[