Skip to content

CLI Improvement#145

Merged
hadarshavit merged 12 commits intomainfrom
cli-improvement
Feb 26, 2026
Merged

CLI Improvement#145
hadarshavit merged 12 commits intomainfrom
cli-improvement

Conversation

@BrianSchiller
Copy link
Collaborator

Small adjustments, more exceptions and included aslib for easier testing

Copilot AI review requested due to automatic review settings February 26, 2026 15:12
@hadarshavit hadarshavit merged commit 6a839b3 into main Feb 26, 2026
16 of 17 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-scenario flag 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_state parameter to SurvivalAnalysis selector for reproducibility
  • Fixed ISAC selector to handle edge cases with fallback algorithm logic
  • Renamed SATzilla parameters for clarity (model_classlabel_classifier_model, added epm_regressor_model)
  • Improved CLI argument handling with --maximize/--minimize flags 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
Copy link

codecov bot commented Feb 26, 2026

Codecov Report

❌ Patch coverage is 71.42857% with 42 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
asf/cli/cli_train.py 30.00% 35 Missing ⚠️
asf/selectors/isac.py 73.33% 4 Missing ⚠️
asf/selectors/snnap.py 95.65% 3 Missing ⚠️

Impacted file tree graph

@@            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     
Flag Coverage Δ
full 84.02% <71.42%> (-0.18%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
asf/selectors/abstract_epm_based_selector.py 80.00% <100.00%> (+8.00%) ⬆️
asf/selectors/hybrid_decision_tree.py 95.65% <100.00%> (ø)
asf/selectors/meta_selector.py 75.96% <ø> (ø)
asf/selectors/parallel_portfolio_selector.py 70.58% <ø> (ø)
asf/selectors/rpc_selector.py 94.73% <ø> (ø)
asf/selectors/satzilla.py 84.61% <100.00%> (+0.17%) ⬆️
asf/selectors/survival_analysis.py 87.57% <100.00%> (+0.14%) ⬆️
asf/selectors/snnap.py 90.56% <95.65%> (+3.42%) ⬆️
asf/selectors/isac.py 81.42% <73.33%> (-3.06%) ⬇️
asf/cli/cli_train.py 56.42% <30.00%> (-6.70%) ⬇️

... and 1 file with indirect coverage changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants