Fix deepaas-cli to handle models missing get_train_args() or get_predict_args() #200
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.


Problem
The
deepaas-clicommand would fail with anAttributeErrorwhen trying to access AI models that only implement prediction functionality (missingget_train_args()) or only training functionality (missingget_predict_args()).For example, with a prediction-only model:
This issue prevented users from using the CLI with models that legitimately only provide one type of functionality.
Root Cause
The CLI module in
deepaas/cmd/cli.pywas loading models directly and immediately calling bothget_predict_args()andget_train_args()without any error handling, even though theModelWrapperclass already existed with proper exception handling for missing methods.Solution
Enabled the use of
ModelWrapperin the CLI module by uncommenting the wrapper instantiation. TheModelWrapperclass already handles missing methods gracefully by catchingAttributeErrorandNotImplementedError, returning empty dictionaries for missing methods.Impact
deepaas-cli predict --helpnow works for training-only modelsdeepaas-cli train --helpnow works for prediction-only modelsTesting
Added comprehensive test coverage in
deepaas/tests/test_cli_fix.pycovering:get_train_args)get_predict_args)This minimal change resolves the GitHub issue while maintaining full backward compatibility with existing models.
Fixes #XXX
Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.