Conversation
There was a problem hiding this comment.
Pull request overview
This pull request introduces CLI improvements and includes extensive new documentation for algorithm selectors. The changes span several areas: CLI enhancements for ASlib scenario support, various selector implementations with bug fixes and parameter additions, comprehensive selector documentation, and type annotation improvements.
Changes:
- Added ASlib scenario support to CLI with
--aslib-scenarioflag for easier testing - Refactored SNNAP selector to match the original algorithm (Jaccard distance-based with per-algorithm models)
- Added comprehensive documentation for all 19 algorithm selectors in
docs/features/selectors.md - Added
random_stateparameter to SurvivalAnalysis selector for reproducibility - Fixed ISAC selector to handle edge cases with fallback algorithm logic
- Renamed SATzilla parameters for clarity (
model_class→label_classifier_model, addedepm_regressor_model) - Improved CLI argument handling with
--maximize/--minimizeflags and better input validation - Added type annotations (
**kwargs: Any) across multiple selector files
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| mkdocs.yml | Added navigation entry for new selectors documentation page |
| docs/features/selectors.md | Comprehensive documentation for all 19 algorithm selectors with parameters, descriptions, and usage guidance |
| asf/selectors/survival_analysis.py | Added random_state parameter for reproducible differential evolution optimization |
| asf/selectors/snnap.py | Major refactoring to implement proper SNNAP algorithm with Jaccard distance and per-algorithm regression models |
| asf/selectors/satzilla.py | Renamed parameters for clarity and improved documentation |
| asf/selectors/isac.py | Added fallback algorithm logic to handle edge cases with empty clusters |
| asf/selectors/rpc_selector.py | Added type annotation for **kwargs parameter |
| asf/selectors/parallel_portfolio_selector.py | Added type annotation for **kwargs parameter |
| asf/selectors/meta_selector.py | Enhanced docstring with parameter descriptions |
| asf/selectors/hybrid_decision_tree.py | Added type annotation for **kwargs parameter and import |
| asf/selectors/abstract_epm_based_selector.py | Simplified parameter filtering logic for EPM kwargs |
| asf/cli/cli_train.py | Added ASlib scenario support, maximize/minimize flags, random_state parameter, preprocessor/presolver choices, and index alignment validation |
Comments suppressed due to low confidence (1)
asf/cli/cli_train.py:380
- The error message says "--feature-data and --performance-data are required" but the actual check is "required when --aslib-scenario is not provided". Consider making the error message more informative by clarifying the context: "--feature-data and --performance-data are required when --aslib-scenario is not provided".
parser.error("--feature-data and --performance-data are required")
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #145 +/- ##
==========================================
- Coverage 84.20% 84.02% -0.18%
==========================================
Files 91 91
Lines 7560 7644 +84
==========================================
+ Hits 6366 6423 +57
- Misses 1194 1221 +27
Flags with carried forward coverage won't be shown. Click here to find out more.
|
Small adjustments, more exceptions and included aslib for easier testing