Skip to content

Commit 0598922

Browse files
authored
Merge pull request #443 from tidymodels/required-pkgs
Re-export required_pkgs generic and added parsnip methods
2 parents dcca83a + 455287e commit 0598922

File tree

9 files changed

+48
-14
lines changed

9 files changed

+48
-14
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: parsnip
2-
Version: 0.1.5.9001
2+
Version: 0.1.5.9002
33
Title: A Common API to Modeling and Analysis Functions
44
Description: A common interface is provided to allow users to specify a model without having to remember the different argument names across different functions or computational engines (e.g. 'R', 'Spark', 'Stan', etc).
55
Authors@R: c(

NAMESPACE

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ S3method(print,svm_poly)
6262
S3method(print,svm_rbf)
6363
S3method(req_pkgs,model_fit)
6464
S3method(req_pkgs,model_spec)
65+
S3method(required_pkgs,model_fit)
66+
S3method(required_pkgs,model_spec)
6567
S3method(tidy,"_elnet")
6668
S3method(tidy,"_fishnet")
6769
S3method(tidy,"_lognet")
@@ -175,6 +177,7 @@ export(prepare_data)
175177
export(rand_forest)
176178
export(repair_call)
177179
export(req_pkgs)
180+
export(required_pkgs)
178181
export(rpart_train)
179182
export(set_args)
180183
export(set_dependency)
@@ -228,6 +231,7 @@ importFrom(generics,augment)
228231
importFrom(generics,fit)
229232
importFrom(generics,fit_xy)
230233
importFrom(generics,glance)
234+
importFrom(generics,required_pkgs)
231235
importFrom(generics,tidy)
232236
importFrom(generics,varying_args)
233237
importFrom(glue,glue_collapse)

NEWS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# parsnip (development version)
22

3+
* `generics::required_pkgs()` was extended for `parsnip` objects.
4+
35
* The `liquidSVM` engine for `svm_rbf()` was deprecated due to that package's removal from CRAN. (#425)
46

57
* A new linear SVM model `svm_linear()` is now available with the `LiblineaR` engine (#424) and the `kernlab` engine (#438), and the `LiblineaR` engine is available for `logistic_reg()` as well (#429).

R/reexports.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ generics::glance
2222
#' @importFrom generics augment
2323
#' @export
2424
generics::augment
25+
26+
#' @importFrom generics required_pkgs
27+
#' @export
28+
generics::required_pkgs

R/req_pkgs.R

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#' @param ... Not used.
55
#' @return A character string of package names (if any).
66
#' @details
7-
#' For a model specification, the engine must be set.
8-
#'
9-
#' The list does not include the `parsnip` package.
7+
#' For a model specification, the engine must be set. The list produced by
8+
#' `req_pkgs()`does not include the `parsnip` package while `required_pkgs()`
9+
#' does.
1010
#' @examples
1111
#' should_fail <- try(req_pkgs(linear_reg()), silent = TRUE)
1212
#' should_fail
@@ -51,3 +51,16 @@ get_pkgs <- function(x) {
5151
res
5252
}
5353

54+
#' @export
55+
#' @rdname req_pkgs
56+
required_pkgs.model_spec <- function(x, ...) {
57+
res <- req_pkgs.model_spec(x, ...)
58+
sort(unique(c("parsnip", res)))
59+
}
60+
61+
#' @export
62+
#' @rdname req_pkgs
63+
required_pkgs.model_fit <- function(x, ...) {
64+
res <- req_pkgs.model_fit(x, ...)
65+
sort(unique(c("parsnip", res)))
66+
}

R/zzz.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
s3_register("generics::tidy", "_fishnet")
1010
s3_register("generics::glance", "model_fit")
1111
s3_register("generics::augment", "model_fit")
12+
s3_register("generics::required_pkgs", "model_fit")
13+
s3_register("generics::required_pkgs", "model_spec")
1214
}
1315

1416

man/reexports.Rd

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/req_pkgs.Rd

Lines changed: 9 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test_packages.R

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@ load(test_path("mars_model.RData"))
77
test_that('required packages', {
88

99
expect_error(req_pkgs(linear_reg()), "Please set an engine")
10+
expect_error(required_pkgs(linear_reg()), "Please set an engine")
1011

1112
glmn <-
1213
linear_reg() %>%
13-
set_engine("glmnet") %>%
14-
req_pkgs()
15-
expect_equal(glmn, "glmnet")
14+
set_engine("glmnet")
15+
expect_equal(req_pkgs(glmn), "glmnet")
16+
expect_equal(required_pkgs(glmn), c("glmnet", "parsnip"))
17+
1618

1719
lm_fit <-
1820
linear_reg() %>%
1921
set_engine("lm") %>%
20-
fit(mpg ~ ., data = mtcars) %>%
21-
req_pkgs()
22-
expect_equal(lm_fit, "stats")
22+
fit(mpg ~ ., data = mtcars)
23+
expect_equal(req_pkgs(lm_fit), "stats")
24+
expect_equal(required_pkgs(lm_fit), c("parsnip", "stats"))
2325
})
2426

2527
# ------------------------------------------------------------------------------

0 commit comments

Comments
 (0)