fix: raise ValueError when no classification is found #1803
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.
Summary
This PR addresses #1638 by improving the error handling when a classification metric cannot find a specified (or default) classification ID in the DataDefinition.
The Problem
Currently, if a user defines a BinaryClassification with a custom name, but forgets to specify that classification_name in their Metric, the system returns None. This results in a cryptic KeyError: None deep in the library.
See issue #1638
Code example:
The Fix
I modified get_classification in datasets.py to raise a descriptive ValueError instead of returning None. This follows the "fail fast" principle and provides the user with actionable feedback.
New Error Message:
ValueError: No classification with id 'default' found.I can potentially add something like this as well?
If you are using custom names, ensure you pass 'classification_name' to your Metric (e.g., Accuracy(..., classification_name='your_name')).Fixes #1638