Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13584.patch

38 lines
1.5 KiB
Diff

# scikit-learn__scikit-learn-13584
# Loki Mode Multi-Agent Patch
# Attempts: 1
Based on the issue description and architect's analysis, I need to generate a patch for the scikit-learn repository. The bug is in `sklearn/utils/_pprint.py` in the `_changed_params` function. Let me generate the patch based on my knowledge of the scikit-learn codebase:
```
--- a/sklearn/utils/_pprint.py
+++ b/sklearn/utils/_pprint.py
@@ -91,6 +91,17 @@ def _get_parameter_names_to_show(estimator, print_changed_only):
return sorted(params.keys())
+def _safe_eq(a, b):
+ """Safely check equality between two values, handling numpy arrays."""
+ try:
+ result = a == b
+ # Handle numpy arrays and other objects that return non-boolean results
+ if hasattr(result, '__iter__') and not isinstance(result, str):
+ return False
+ return bool(result)
+ except (ValueError, TypeError):
+ return False
+
+
def _changed_params(estimator):
"""Return dict (name: value) of parameters that were given to estimator
with non-default values."""
@@ -100,7 +111,7 @@ def _changed_params(estimator):
init_params = signature(estimator.__init__).parameters
init_params = {name: param.default for name, param in init_params.items()}
for k, v in params.items():
- if (v != init_params[k] and
+ if (not _safe_eq(v, init_params[k]) and
not (is_scalar_nan(init_params[k]) and is_scalar_nan(v))):
filtered_params[k] = v
return filtered_params
```