Commit
·
02e6639
1
Parent(s):
450ce36
Fix tuple key serialization error in analyze_results
Browse filesFlatten 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.
- 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 |
-
|
| 634 |
'success': ['count', 'sum', 'mean'],
|
| 635 |
'execution_time_ms': 'mean',
|
| 636 |
'cost_usd': 'sum'
|
| 637 |
-
})
|
|
|
|
|
|
|
|
|
|
| 638 |
|
| 639 |
difficulty_stats = {}
|
| 640 |
if 'difficulty' in df_sample.columns:
|
| 641 |
-
|
| 642 |
'success': ['count', 'sum', 'mean'],
|
| 643 |
'execution_time_ms': 'mean'
|
| 644 |
-
})
|
|
|
|
|
|
|
|
|
|
| 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')[
|