-
Notifications
You must be signed in to change notification settings - Fork 24
prompt on add_model()
when missing implementation
#175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Noting that a side effect of this is we may not need to PR separately to tune. With this PR, we see: # note: do not load required parsnip extension
library(parsnip)
library(tune)
library(rsample)
bt_mod <- bag_tree() %>%
set_engine("rpart") %>%
set_mode("regression")
bt_tune <-
fit_resamples(
bt_mod,
mpg ~ .,
resamples = bootstraps(mtcars)
)
#> ! parsnip could not locate an implementation for `bag_tree` regression model
#> specifications using the `rpart` engine.
#> ℹ The parsnip extension package baguette implements support for this
#> specification.
#> ℹ Please install (if needed) and load to continue.
#>
#> x Bootstrap01: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap02: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap03: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap04: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap05: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap06: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap07: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap08: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap09: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap10: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap11: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap12: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap13: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap14: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap15: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap16: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap17: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap18: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap19: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap20: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap21: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap22: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap23: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap24: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> x Bootstrap25: preprocessor 1/1: Error in if (nrow(out) != 1L) : argument is of length zero
#> Warning: All models failed. Run `show_notes(.Last.tune.result)` for more
#> information. Created on 2022-09-09 by the reprex package (v2.0.1) This may be an argument for elevating the message at |
I'd prefer the referenced call in the second snapshot to be `workflow` rather than `add_model`, though this would be a good bit more invasive.
Going to go ahead and close this. The thought is that we fail early enough to prevent people from running computationally intensive things before running into issues. In practice, I think parsnip makes this happen most of the time: if a user is tuning a workflow and that workflow uses an engine that isn't loaded, then all models will fail with the parsnip error and that tuning will only take a second or two. It is true that if a user is tuning a workflowset, and some needed extensions are loaded while others are not, the specs with loaded extensions will tune fully before notifying the user that the others failed. I think I'm okay with this. This was the last of the places where we would implement the missing extension error, and it's the only one outside of parsnip, so it looks like we actually don't need to export those helpers. Will put in a PR there in the next few days! |
This pull request has been automatically locked. If you believe you have found a related problem, please file a new issue (with a reprex: https://reprex.tidyverse.org) and link to this issue. |
Closes #174. :)
Created on 2022-09-08 by the reprex package (v2.0.1)
This PR requires dev parsnip, so won't make it into 1.1.0.