Skip to content

Determine required packages for a model

Usage

# S3 method for model_spec
required_pkgs(x, infra = TRUE, ...)

# S3 method for model_fit
required_pkgs(x, infra = TRUE, ...)

Arguments

x

A model specification or fit.

infra

Should parsnip itself be included in the result?

...

Not used.

Value

A character vector

Examples

should_fail <- try(required_pkgs(linear_reg(engine = NULL)), silent = TRUE)
should_fail
#> [1] "Error in required_pkgs(linear_reg(engine = NULL)) : Please set an engine.\n"
#> attr(,"class")
#> [1] "try-error"
#> attr(,"condition")
#> <error/rlang_error>
#> Error in `required_pkgs()`:
#> ! Please set an engine.
#> ---
#> Backtrace:
#>      
#>   1. └─pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
#>   2.   └─pkgdown::build_site(...)
#>   3.     └─pkgdown:::build_site_local(...)
#>   4.       └─pkgdown::build_reference(...)
#>   5.         └─purrr::map(...)
#>   6.           └─purrr:::map_("list", .x, .f, ..., .progress = .progress)
#>   7. ─purrr:::with_indexed_errors(...)
#>   8. └─base::withCallingHandlers(...)
#>   9. purrr:::call_with_cleanup(...)
#>  10.             └─pkgdown (local) .f(.x[[i]], ...)
#>  11. base::withCallingHandlers(...)
#>  12.               └─pkgdown:::data_reference_topic(...)
#>  13.                 └─pkgdown:::run_examples(...)
#>  14.                   └─pkgdown:::highlight_examples(code, topic, env = env)
#>  15.                     └─downlit::evaluate_and_highlight(...)
#>  16.                       └─evaluate::evaluate(code, child_env(env), new_device = TRUE, output_handler = output_handler)
#>  17.                         └─evaluate:::evaluate_call(...)
#>  18. ─evaluate (local) timing_fn(...)
#>  19. ─evaluate (local) handle(...)
#>  20. └─base::try(f, silent = TRUE)
#>  21. └─base::tryCatch(...)
#>  22. └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  23. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  24. └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  25. ─base::withCallingHandlers(...)
#>  26. ─base::withVisible(...)
#>  27.                           └─evaluate:::eval_with_user_handlers(expr, envir, enclos, user_handlers)
#>  28.                             └─base::eval(expr, envir, enclos)
#>  29.                               └─base::eval(expr, envir, enclos)
#>  30. ─base::try(required_pkgs(linear_reg(engine = NULL)), silent = TRUE)
#>  31. └─base::tryCatch(...)
#>  32. └─base (local) tryCatchList(expr, classes, parentenv, handlers)
#>  33. └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
#>  34. └─base (local) doTryCatch(return(expr), name, parentenv, handler)
#>  35. generics::required_pkgs(linear_reg(engine = NULL))
#>  36.                                 └─parsnip:::required_pkgs.model_spec(linear_reg(engine = NULL))

linear_reg() %>%
  set_engine("glmnet") %>%
  required_pkgs()
#> [1] "parsnip" "glmnet" 

linear_reg() %>%
  set_engine("glmnet") %>%
  required_pkgs(infra = FALSE)
#> [1] "glmnet"

linear_reg() %>%
  set_engine("lm") %>%
  fit(mpg ~ ., data = mtcars) %>%
  required_pkgs()
#> [1] "parsnip" "stats"