Refactor prepare_data()
#846
Merged
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.
prepare_data()is called within thepredict_<prediction type>().model_fit()methods, on themodel_fitand thenew_data. If we converted the training data between different interfaces (matrix vs formula), we also convert thenew_dataat prediction time, via.convert_form_to_xy_new()and.convert_xy_to_form_new()respectively. Whether those get called is determined based on the objects in the$preprocof the fitted parsnip model.I've refactored this here to use variable names for the conditions, to make it easier to understand which preproc items are linked to which conversion.
The main question for review is: is it okay to rely only on the names of the preproc items? The previous version relied on them to decide if any
.convert_*()function should be applied. The refactored version also relies on them to decide which of them should be applied.