Add validation and clear error messages for custom_metric parameter #1500
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Plan: Add validation and better error handling for custom_metric parameter
The issue occurs when users incorrectly call the custom_metric function instead of passing it as a reference. The current code doesn't validate that the metric parameter is callable when it's not a string, leading to confusing errors.
Changes completed:
AutoML.__init__()to check if metric is callable when it's not a stringAutoML.fit()to check if metric is callable when it's not a stringis Nonecheck instead of truthy check__init__andfitto explicitly warn against calling the functiontest_invalid_custom_metric) to validate the fix_validate_metric_parametermethodSummary
This fix addresses the user-reported issue where calling
custom_metric(...)instead of passingcustom_metricled to confusing errors. The solution includes:_validate_metric_parameter()static method that checks if metric is callable or a stringAll tests pass and the changes are backward compatible.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.