generics/0000755000176200001440000000000015007512256012054 5ustar liggesusersgenerics/tests/0000755000176200001440000000000015007440240013207 5ustar liggesusersgenerics/tests/testthat/0000755000176200001440000000000015007512256015056 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/0000755000176200001440000000000015007440240020202 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/R/0000755000176200001440000000000015007440240020403 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/R/a.R0000644000176200001440000000070315007440240020746 0ustar liggesusers#' Generic test for multiple methods #' #' #' @param x,y A parameter #' #' @rdname multi-method #' #' @export multi_method <- function(x, y) { UseMethod("multi_method") } #' Test default #' #' @param x,y A parameter #' #' @rdname multi-method-2 #' #' @export multi_method.default <- function(x, y) { x } #' Test data frame #' #' @param x,y A parameter #' #' @rdname multi-method-3 #' #' @export multi_method.data.frame <- function(x, y) { x } generics/tests/testthat/testMultiMethod/NAMESPACE0000644000176200001440000000020415007440240021415 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(multi_method,data.frame) S3method(multi_method,default) export(multi_method) generics/tests/testthat/testMultiMethod/man/0000755000176200001440000000000015007440240020755 5ustar liggesusersgenerics/tests/testthat/testMultiMethod/man/multi-method-2.Rd0000644000176200001440000000042315007440240024012 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.default} \alias{multi_method.default} \title{Test default} \usage{ \method{multi_method}{default}(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test default } generics/tests/testthat/testMultiMethod/man/multi-method.Rd0000644000176200001440000000043315007440240023654 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method} \alias{multi_method} \title{Generic test for multiple methods} \usage{ multi_method(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Generic test for multiple methods } generics/tests/testthat/testMultiMethod/man/multi-method-3.Rd0000644000176200001440000000044215007440240024014 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.data.frame} \alias{multi_method.data.frame} \title{Test data frame} \usage{ \method{multi_method}{data.frame}(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test data frame } generics/tests/testthat/testMultiMethod/DESCRIPTION0000644000176200001440000000033615007440240021712 0ustar liggesusersPackage: testMultiMethod Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testGenericsExtension/0000755000176200001440000000000015007440240021403 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/R/0000755000176200001440000000000015007440240021604 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/R/a.R0000644000176200001440000000027415007440240022152 0ustar liggesusers#' @importFrom generics tidy #' @export generics::tidy #' Test default #' #' @param x A parameter #' #' @rdname tidy-special #' #' @export tidy.special_method <- function(x, ...) { x } generics/tests/testthat/testGenericsExtension/NAMESPACE0000644000176200001440000000016315007440240022622 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(tidy,special_method) export(tidy) importFrom(generics,tidy) generics/tests/testthat/testGenericsExtension/man/0000755000176200001440000000000015007440240022156 5ustar liggesusersgenerics/tests/testthat/testGenericsExtension/man/tidy-special.Rd0000644000176200001440000000041715007440240025036 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{tidy.special_method} \alias{tidy.special_method} \title{Test default} \usage{ \method{tidy}{special_method}(x, ...) } \arguments{ \item{x}{A parameter} } \description{ Test default } generics/tests/testthat/testGenericsExtension/man/reexports.Rd0000644000176200001440000000060415007440240024500 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \docType{import} \name{reexports} \alias{reexports} \alias{tidy} \title{Objects exported from other packages} \keyword{internal} \description{ These objects are imported from other packages. Follow the links below to see their documentation. \describe{ \item{generics}{\code{\link[generics]{tidy}}} }} generics/tests/testthat/testGenericsExtension/DESCRIPTION0000644000176200001440000000037015007440240023111 0ustar liggesusersPackage: testGenericsExtension Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 Imports: generics generics/tests/testthat/test-docs.R0000644000176200001440000000242015007440240017075 0ustar liggesuserstest_that("generics methods can be reexported and extended", { local_load_all("testGenericsExtension") expect_snapshot(methods_rd("tidy")) }) test_that("multiple packages have multiple headers", { local_load_all("testMultiMethod") local_load_all("testMultiPackage") expect_snapshot(methods_rd("multi_method")) }) test_that("S4 bullets print with no issues", { local_load_all("testS4Docs") expect_snapshot(methods_rd("multi_method")) }) test_that("S4 and S3 packages can intermingle", { local_load_all("testS4Docs") local_load_all("testMultiMethod") expect_snapshot(methods_rd("multi_method")) }) test_that("multiple methods but same rdname are comma separated", { local_load_all("testSameRd") expect_snapshot(methods_rd("same_rd_name")) }) test_that("single method is correctly itemized", { local_load_all("testSingleMethod") expect_snapshot(methods_rd("single_method")) }) test_that("multiple methods are correctly itemized", { local_load_all("testMultiMethod") expect_snapshot(methods_rd("multi_method")) }) test_that("no methods case returns default output", { expect_equal( methods_rd("methods_rd"), "No methods found in currently loaded packages." ) }) test_that("nonexistant generic is an error", { expect_error(methods_rd("xyz")) }) generics/tests/testthat/testMultiPackage/0000755000176200001440000000000015007440240020315 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/R/0000755000176200001440000000000015007440240020516 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/R/a.R0000644000176200001440000000017315007440240021062 0ustar liggesusers#' Test data frame #' #' @param x,y A parameter #' #' @rdname multi-method-4 multi_method.matrix <- function(x, y) { x } generics/tests/testthat/testMultiPackage/NAMESPACE0000644000176200001440000000005615007440240021535 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testMultiPackage/man/0000755000176200001440000000000015007440240021070 5ustar liggesusersgenerics/tests/testthat/testMultiPackage/man/multi-method-4.Rd0000644000176200001440000000041415007440240024127 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{multi_method.matrix} \alias{multi_method.matrix} \title{Test data frame} \usage{ multi_method.matrix(x, y) } \arguments{ \item{x, y}{A parameter} } \description{ Test data frame } generics/tests/testthat/testMultiPackage/DESCRIPTION0000644000176200001440000000034215007440240022022 0ustar liggesusersPackage: testMultiPackage Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/_snaps/0000755000176200001440000000000015007440240016332 5ustar liggesusersgenerics/tests/testthat/_snaps/docs.md0000644000176200001440000000510515007440240017605 0ustar liggesusers# generics methods can be reexported and extended Code methods_rd("tidy") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testGenericsExtension}\n\\itemize{\n\\item \\code{\\link[testGenericsExtension]{tidy-special}}: \\code{special_method}\n}" # multiple packages have multiple headers Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}\n\\code{testMultiPackage}\n\\itemize{\n\\item \\code{\\link[testMultiPackage]{multi-method-4}}: \\code{matrix}\n}" # S4 bullets print with no issues Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testS4Docs}\n\\itemize{\n\\item \\code{\\link[testS4Docs]{multi_method}}: \\code{ANY,ANY}, \\code{numeric,ANY}, \\code{numeric,integer}\n}" # S4 and S3 packages can intermingle Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}\n\\code{testS4Docs}\n\\itemize{\n\\item \\code{\\link[testS4Docs]{multi_method}}: \\code{ANY,ANY}, \\code{numeric,ANY}, \\code{numeric,integer}\n}" # multiple methods but same rdname are comma separated Code methods_rd("same_rd_name") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testSameRd}\n\\itemize{\n\\item \\code{\\link[testSameRd]{same_rd_name-2}}: \\code{data.frame}, \\code{default}\n}" # single method is correctly itemized Code methods_rd("single_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testSingleMethod}\n\\itemize{\n\\item \\code{\\link[testSingleMethod]{single-method-2}}: \\code{default}\n}" # multiple methods are correctly itemized Code methods_rd("multi_method") Output [1] "See the following help topics for more details about individual methods:\n\n\\code{testMultiMethod}\n\\itemize{\n\\item \\code{\\link[testMultiMethod]{multi-method-2}}: \\code{default}\n\\item \\code{\\link[testMultiMethod]{multi-method-3}}: \\code{data.frame}\n}" generics/tests/testthat/testS4Docs/0000755000176200001440000000000015007440240017046 5ustar liggesusersgenerics/tests/testthat/testS4Docs/R/0000755000176200001440000000000015007440240017247 5ustar liggesusersgenerics/tests/testthat/testS4Docs/R/a.R0000644000176200001440000000055215007440240017614 0ustar liggesusers#' An s4 generic #' #' @export #' @aliases multi_method,ANY,ANY-method setGeneric("multi_method", function(x, y) { x }) #' @rdname multi_method #' @export setMethod("multi_method", signature(x = "numeric"), function(x, y) { x }) #' @rdname multi_method #' @export setMethod("multi_method", signature(x = "numeric", y = "integer"), function(x, y) { x }) generics/tests/testthat/testS4Docs/NAMESPACE0000644000176200001440000000013715007440240020266 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(multi_method) exportMethods(multi_method) generics/tests/testthat/testS4Docs/man/0000755000176200001440000000000015007440240017621 5ustar liggesusersgenerics/tests/testthat/testS4Docs/man/multi_method.Rd0000644000176200001440000000066215007440240022606 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \docType{methods} \name{multi_method} \alias{multi_method} \alias{multi_method,ANY,ANY-method} \alias{multi_method,numeric,ANY-method} \alias{multi_method,numeric,integer-method} \title{An s4 generic} \usage{ multi_method(x, y) \S4method{multi_method}{numeric,ANY}(x, y) \S4method{multi_method}{numeric,integer}(x, y) } \description{ An s4 generic } generics/tests/testthat/testS4Docs/DESCRIPTION0000644000176200001440000000033115007440240020551 0ustar liggesusersPackage: testS4Docs Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testSingleMethod/0000755000176200001440000000000015007440240020331 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/R/0000755000176200001440000000000015007440240020532 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/R/a.R0000644000176200001440000000043315007440240021075 0ustar liggesusers#' Generic test #' #' #' @param x A parameter #' #' @rdname single-method #' #' @export single_method <- function(x) { UseMethod("single_method") } #' Test default #' #' @param x A parameter #' #' @rdname single-method-2 #' #' @export single_method.default <- function(x) { x } generics/tests/testthat/testSingleMethod/NAMESPACE0000644000176200001440000000014415007440240021547 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(single_method,default) export(single_method) generics/tests/testthat/testSingleMethod/man/0000755000176200001440000000000015007440240021104 5ustar liggesusersgenerics/tests/testthat/testSingleMethod/man/single-method-2.Rd0000644000176200001440000000042015007440240024265 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{single_method.default} \alias{single_method.default} \title{Test default} \usage{ \method{single_method}{default}(x) } \arguments{ \item{x}{A parameter} } \description{ Test default } generics/tests/testthat/testSingleMethod/man/single-method.Rd0000644000176200001440000000035615007440240024136 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{single_method} \alias{single_method} \title{Generic test} \usage{ single_method(x) } \arguments{ \item{x}{A parameter} } \description{ Generic test } generics/tests/testthat/testSingleMethod/DESCRIPTION0000644000176200001440000000033715007440240022042 0ustar liggesusersPackage: testSingleMethod Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat/testSameRd/0000755000176200001440000000000015007440240017122 5ustar liggesusersgenerics/tests/testthat/testSameRd/R/0000755000176200001440000000000015007440240017323 5ustar liggesusersgenerics/tests/testthat/testSameRd/R/a.R0000644000176200001440000000067615007440240017677 0ustar liggesusers#' Generic test for multiple methods on the same rd file #' #' Should be comma separated #' #' @param x A parameter #' #' @rdname same_rd_name #' same_rd_name <- function(x) { UseMethod("same_rd_name") } #' Test default #' #' @param x A parameter #' #' @rdname same_rd_name-2 same_rd_name.default <- function(x) { x } #' Test data frame #' #' @param x A parameter #' #' @rdname same_rd_name-2 same_rd_name.data.frame <- function(x) { x } generics/tests/testthat/testSameRd/NAMESPACE0000644000176200001440000000005615007440240020342 0ustar liggesusers# Generated by roxygen2: do not edit by hand generics/tests/testthat/testSameRd/man/0000755000176200001440000000000015007440240017675 5ustar liggesusersgenerics/tests/testthat/testSameRd/man/same_rd_name.Rd0000644000176200001440000000044115007440240022575 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{same_rd_name} \alias{same_rd_name} \title{Generic test for multiple methods on the same rd file} \usage{ same_rd_name(x) } \arguments{ \item{x}{A parameter} } \description{ Should be comma separated } generics/tests/testthat/testSameRd/man/same_rd_name-2.Rd0000644000176200001440000000057315007440240022742 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/a.r \name{same_rd_name.default} \alias{same_rd_name.default} \alias{same_rd_name.data.frame} \title{Test default} \usage{ \method{same_rd_name}{default}(x) \method{same_rd_name}{data.frame}(x) } \arguments{ \item{x}{A parameter} \item{x}{A parameter} } \description{ Test default Test data frame } generics/tests/testthat/testSameRd/DESCRIPTION0000644000176200001440000000033415007440240020630 0ustar liggesusersPackage: testSameRd Title: Tools to make developing R code easier License: GPL-2 Description: Author: Hadley Maintainer: Hadley Version: 0.1 Collate: a.r RoxygenNote: 6.1.0 generics/tests/testthat.R0000644000176200001440000000007415007440240015173 0ustar liggesuserslibrary(testthat) library(generics) test_check("generics") generics/MD50000644000176200001440000001403215007512256012364 0ustar liggesusersd832fe345ca1b6a712a9ddadf9d6a473 *DESCRIPTION e410b4547b55e88d2d7036bfe47d4599 *LICENSE 0eccfbba71ea2096f55f68d3345a2ddf *NAMESPACE e8e6f588eb7acca1f11be8b5e9b27500 *NEWS.md 21bedfd0c934feef3a81c82ce5abeead *R/accuracy.R a1bd47ef344ca3b8c8e16bfbd0fa120e *R/augment.R 1ec5c5e1d2f1f73ff275fd1091a20b3e *R/calculate.R 775f146887bd51d40b8c57dcc03a57c5 *R/coercion.R 5257de8b9a5dcf09e45aaa0ae70ab9bf *R/compile.R c5265a01d3e9cb31052efff4d3839064 *R/components.R 2b02cd6c664a7e99b8e7878784ed1a8e *R/docs.R 8dd18dc4efae761ba046da933443caea *R/equation.R 4fe6ca98c96c3066b004473e897c15ff *R/estfun.R d3dce08568db87b84dd67c52a9251d55 *R/evaluate.R 7bba594189e5381735f51447881876fd *R/explain.R 80dd5a29986e7b75ddd1e7d533fddb75 *R/explore.R bb7d63cdce04e8b7fdeb1cabd3d093e3 *R/fit.R 77aed72c740584b38ef42c2d07b1d733 *R/fit_xy.R 04d829fd0a275e8e45874cd546ed67c9 *R/forecast.R 3e92c1d331a30fc064a8185ad352c484 *R/generate.R ff0b74bedf4aa2bf028f4476fce17adc *R/generics-package.R 681857b0281027823af5e7ea15110330 *R/glance.R da90990e27342ce15a6806d3d0905082 *R/hypothesize.R eedc6ed8f894f7e569a0133b55fcbb68 *R/interpolate.R 19cdb999be6c773c401efafcfa356c53 *R/learn.R c25a35502ed985eebe44f3afad997893 *R/min_grid.R 033d195099df7924af3b759e5f34f332 *R/prune.R 8aeafbdc97b3a724d000eaaf127d8e88 *R/rank_results.R 32d94e7a205c33d20aab3dcdd879e88b *R/refit.R e2aeb4f6e986a2c680fa56f888305379 *R/required_pkgs.R 7bcb1db05f0ecf23dca2aa6d5ff385ae *R/sets.R 1ef466ed87482aeb8e2a5c79d4b881c7 *R/specify.R 308fea1188c72f14b7f877ade546c09c *R/tidy.R 11c48f1eea847f278a4d3a868ae0dc11 *R/train.R 9179c6776dc902f6de15c5606022f1bb *R/tunable.R 995fb482b56cf7161f068a2172ee6930 *R/tune_args.R 175e5a10e67af5b9877f058ecc5de658 *R/utils.R 4c56b30b94c818f1ee28048e03d0293f *R/var_imp.R cf7ec6cf9623759597133947bda96adc *R/varying_args.R 6b47983c74b128cabf453745e4c39779 *R/visualize.R 0476788f88ef0e48f79428f2a921354a *README.md a7d1f6f0bdca22ab63969b898f682478 *build/stage23.rdb f23520f8c25f2f821dd159427a1442ce *man/accuracy.Rd 523b56b30a4c9ac8c807d8ccda8d344d *man/augment.Rd 83ab075348313b46dc2e2d519b1c1341 *man/calculate.Rd 4c48614ad02aedc37c68cdeb344b5d3d *man/coercion-factor.Rd deb545088c9a00e968319b13b0e49b3c *man/coercion-time-difference.Rd 998985c56353e5273cc536eb1bd7ff60 *man/compile.Rd 21862abe1685e13d29f5a9f75a26f393 *man/components.Rd f65f1ce688a37aa6f34e102882f580ff *man/equation.Rd b4ed2df1beedf0cd3c730e680635873e *man/estfun.Rd 32fa1cace23d3ee2c3fa61f000d6a17c *man/evaluate.Rd acd4cb06baf8de4745b7516be781b758 *man/explain.Rd 03ef38ae2db6122358702973b8ed9b29 *man/explore.Rd 1f2773e5f0794259365b7961944a5102 *man/fit.Rd 04942f4c5a5e0a82c3277d2aaf9b9bfb *man/fit_xy.Rd 2ebb46ff1c203ee4a200eeff35d6f464 *man/forecast.Rd b92626134335db76c2d30c4a57394cab *man/generate.Rd adcbb6415a1f11e9bb6d8a7022f9f87d *man/generics-package.Rd 09d54ee897ea912b31a9dd4266d1ea1d *man/glance.Rd cf4879ac57cf58bf6645291b80ca2fa7 *man/hypothesize.Rd 3d7f18e74b7478ff2f64d5932f92dbbc *man/interpolate.Rd ddf1c70bd453d5f21d57da88ccd36d41 *man/learn.Rd 246ddc29a5d96465428df18a4a91dfee *man/min_grid.Rd bb0bebb75f24031c553309c68b0f982d *man/prune.Rd f7293756d9a1c157b6fb8b38cc129503 *man/rank_results.Rd 90fd18460d2f637ab17d18e03672e550 *man/refit.Rd 6015d0ab63dba841c36e9f0806f24dc6 *man/required_pkgs.Rd c66c4107f6fb877b4e500ecf92f3c381 *man/setops.Rd d87bc36ec4adcf4fe6e368aff5247647 *man/specify.Rd 346fe4de2ab6f2715e499253fb790a6d *man/tidy.Rd aa3497002c683594476b2c3e9adf68d6 *man/train.Rd 3edda1395f190faaf82a8b2d821b82e7 *man/tunable.Rd 5b5ff4dcaf9df8ddbceff5a7873057d8 *man/tune_args.Rd 8f3b62d34cd522e2a7a0e966834ad257 *man/var_imp.Rd 4c918d2bc5a75c124201f8bf07fa77ac *man/varying_args.Rd 3c0925e7779785f7d71c85d98fd76208 *man/visualize.Rd 10e57227abf625e9bd94bb01a28d18bf *tests/testthat.R a7ec69411ed35025f1c7318b82e1cd70 *tests/testthat/_snaps/docs.md 56c5e6507d27c1ad25637475b4e8f896 *tests/testthat/test-docs.R 57ca61f2caa8c713a6fa35ceed78fb34 *tests/testthat/testGenericsExtension/DESCRIPTION 65070781ab853dbeee0ed430afba2e74 *tests/testthat/testGenericsExtension/NAMESPACE bed46e9148b57983b54a9a86e095aaa3 *tests/testthat/testGenericsExtension/R/a.R dc65ad9d2cdf35e10bdab6dcfc66a242 *tests/testthat/testGenericsExtension/man/reexports.Rd 6d14ba2857c093f7265f3f8fdcbf0c4c *tests/testthat/testGenericsExtension/man/tidy-special.Rd d9be3e139b99a5645efc089f523db68c *tests/testthat/testMultiMethod/DESCRIPTION 050e863e2159229598a36ec227dff549 *tests/testthat/testMultiMethod/NAMESPACE 73970c5c20aace9f4ce4983e815c8841 *tests/testthat/testMultiMethod/R/a.R e4e546a50ba081cefe0c96a889c15cd2 *tests/testthat/testMultiMethod/man/multi-method-2.Rd 7e5b097d6fd3e9c1de9e51d1906c93b4 *tests/testthat/testMultiMethod/man/multi-method-3.Rd 945c59174d06a10d0e2ae1d633ea505f *tests/testthat/testMultiMethod/man/multi-method.Rd c3a3d5f5c29264cad2d4593652f65a1b *tests/testthat/testMultiPackage/DESCRIPTION dc21c19f0d6968ee25d441b2cf46017d *tests/testthat/testMultiPackage/NAMESPACE 5282094581ee4a4030780dcff58afebb *tests/testthat/testMultiPackage/R/a.R d861a94cfb80732a6f4d71e19679ff7a *tests/testthat/testMultiPackage/man/multi-method-4.Rd 23f5d58a38a3e6f85f64b277678f9159 *tests/testthat/testS4Docs/DESCRIPTION 04cb102d01a92edd5557d6bb88d6340e *tests/testthat/testS4Docs/NAMESPACE 6c52dc5190d32bfa35db1cba764f3af6 *tests/testthat/testS4Docs/R/a.R 9bcff2bf60bbc365fea8833ef9a3a19a *tests/testthat/testS4Docs/man/multi_method.Rd 25f65c26045a9f6695435ef633ed69c4 *tests/testthat/testSameRd/DESCRIPTION dc21c19f0d6968ee25d441b2cf46017d *tests/testthat/testSameRd/NAMESPACE a8d34885c4196c1757a723f7751e3ce4 *tests/testthat/testSameRd/R/a.R ae4d8e21ea85356ea5781f18cdead6e9 *tests/testthat/testSameRd/man/same_rd_name-2.Rd e1858acfbc77a13308bd43048c271546 *tests/testthat/testSameRd/man/same_rd_name.Rd 9484eb32bebc16a7115ba40c410ff99b *tests/testthat/testSingleMethod/DESCRIPTION b7888be3ed78d52a045d613d8f8c01ae *tests/testthat/testSingleMethod/NAMESPACE 8c0260df5bd5c720ed13cd70fb661207 *tests/testthat/testSingleMethod/R/a.R dd9555882a4a87cb61b91b33f2ed2ec3 *tests/testthat/testSingleMethod/man/single-method-2.Rd 5c51ca0b0dcf6c4f6b5bdf02ed4fa451 *tests/testthat/testSingleMethod/man/single-method.Rd generics/R/0000755000176200001440000000000015007440240012246 5ustar liggesusersgenerics/R/visualize.R0000644000176200001440000000045115007440240014404 0ustar liggesusers#' Visualize a data set or object. #' #' @param x A data frame or other object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("visualize")} #' #' @export visualize <- function(x, ...) { UseMethod("visualize") } generics/R/generics-package.R0000644000176200001440000000200115007440240015552 0ustar liggesusers#' generics: common S3 generics #' #' These are generic functions that can be used to minimize #' package dependencies when multiple packages have the same #' method. #' #' An attempt was made to use generic class signatures that were #' consistent with existing code. For example, \pkg{dplyr} and #' \pkg{lime} both have `explain()` methods that do very different #' things but both take `x` as their main object. Even though `x` #' would be different in those cases, this package provides access #' to the S3 generic so that other packages that may want to create #' `explain()` methods for their objects can do so without loading #' either of the other packages. #' #' For example, if a new `tidy()` method is being developed for a #' package, this lightweight package can be the required dependency #' to have access to the generic method (instead of depending on #' \pkg{broom} and installing its dependencies). #' #' @keywords internal "_PACKAGE" ## usethis namespace: start ## usethis namespace: end NULL generics/R/generate.R0000644000176200001440000000042115007440240014160 0ustar liggesusers#' Generate values based on inputs #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("generate")} #' #' @export generate <- function(x, ...) { UseMethod("generate") } generics/R/explain.R0000644000176200001440000000046515007440240014036 0ustar liggesusers#' Explain details of an object #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("explain")} #' #' @export explain <- function(x, ...) { UseMethod("explain") } generics/R/refit.R0000644000176200001440000000042015007440240013476 0ustar liggesusers#' Refitting models #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("refit")} #' #' @export refit <- function(object, ...) { UseMethod("refit") } generics/R/tunable.R0000644000176200001440000000275315007440240014032 0ustar liggesusers#' Declare tunable parameters #' #' Returns information on potential hyper-parameters that can be optimized. #' #' @param x An object, such as a recipe, recipe step, workflow, or model #' specification. #' @param ... Other arguments passed to methods #' #'@return A tibble with a column for the parameter `name`, information on the #' _default_ method for generating a corresponding parameter object, the #' `source` of the parameter (e.g. "recipe", etc.), and the `component` within #' the source. For the `component` column, a little more specificity is given #' about the location of the parameter (e.g. "step_normalize" for recipes or #' "boost_tree" for models). The `component_id` column contains the unique step #' `id` field or, for models, a logical for whether the model specification #' argument was a main parameter or one associated with the engine. #' @details #' For a model specification, an engine must be chosen. #' #' If the object has no tunable parameters, a tibble with no rows is returned. #' #' The information about the default parameter object takes the form of a #' named list with an element for the function call and an optional element for #' the source of the function (e.g. the `dials` package). For model #' specifications, If the parameter is unknown to the underlying `tunable` #' method, a `NULL` is returned. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tunable")} #' #' @export tunable <- function(x, ...) { UseMethod("tunable") } generics/R/estfun.R0000644000176200001440000000045415007440240013700 0ustar liggesusers#' Extracting the estimating functions of a fitted model. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("estfun")} #' #' @param x A fitted model object. #' @param ... Other arguments passed to methods #' @export estfun <- function(x, ...) { UseMethod("estfun") } generics/R/min_grid.R0000644000176200001440000000127415007440240014165 0ustar liggesusers#' Determine the minimum set of model fits #' #' `min_grid()` determines exactly what models should be fit in order to #' evaluate the entire set of tuning parameter combinations. This is for #' internal use only and the API may change in the near future. #' @param x A model specification. #' @param grid A tibble with tuning parameter combinations. #' @param ... Not currently used. #' @return A tibble with the minimum tuning parameters to fit and an additional #' list column with the parameter combinations used for prediction. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("min_grid")} #' @export min_grid <- function(x, grid, ...) { UseMethod("min_grid") } generics/R/forecast.R0000644000176200001440000000060215007440240014175 0ustar liggesusers#' Forecasting from an object #' #' The functions allow producing forecasts based on the provided object. #' #' @param object A model for which forecasts are required. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("forecast")} #' #' @export forecast <- function(object, ...) { UseMethod("forecast") } generics/R/fit_xy.R0000644000176200001440000000053715007440240013700 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data in the form of #' a set of predictors (`x`) and outcome(s) (`y`). #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit_xy")} #' #' @inheritParams compile #' @export fit_xy <- function(object, ...) { UseMethod("fit_xy") } generics/R/compile.R0000644000176200001440000000053315007440240014022 0ustar liggesusers#' Configure an object #' #' Finalizes or completes an object. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("compile")} #' #' @param object An object. See the individual method for specifics. #' @param ... Other arguments passed to methods #' @export compile <- function(object, ...) { UseMethod("compile") } generics/R/augment.R0000644000176200001440000000065315007440240014035 0ustar liggesusers#' Augment data with information from an object #' #' @param x Model object or other R object with information to append to #' observations. #' @param ... Addition arguments to `augment` method. #' @return A [tibble::tibble()] with information about data points. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("augment")} #' #' @export #' augment <- function(x, ...) { UseMethod("augment") } generics/R/components.R0000644000176200001440000000123615007440240014560 0ustar liggesusers#' Extract components #' #' `components` can be used to extract elements from an object. #' #' For example, decomposition methods and some modelling techniques can be used #' to decompose a dataset into components of interest. This function is used #' to extract these components in a tidy data format. #' #' @param object A data separable object. #' @param ... Other arguments passed to methods #' #' @return A dataset ([tibble::tibble()] or similar) containing components from #' the object. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("components")} #' #' @export components <- function(object, ...) { UseMethod("components") } generics/R/specify.R0000644000176200001440000000042715007440240014036 0ustar liggesusers#' Specify variables or other quantities. #' #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("specify")} #' #' @export specify <- function(x, ...) { UseMethod("specify") } generics/R/evaluate.R0000644000176200001440000000045715007440240014205 0ustar liggesusers#' Evaluate an object. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("evaluate")} #' #' @export evaluate <- function(x, ...) { UseMethod("evaluate") } generics/R/prune.R0000644000176200001440000000042215007440240013520 0ustar liggesusers#' Prune or reduce an object #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("prune")} #' #' @param tree A fitted model object. #' @param ... Other arguments passed to methods #' @export prune <- function(tree, ...) { UseMethod("prune") } generics/R/tidy.R0000644000176200001440000000060615007440240013344 0ustar liggesusers#' Turn an object into a tidy tibble #' #' @param x An object to be converted into a tidy [tibble::tibble()]. #' @param ... Additional arguments to tidying method. #' @return A [tibble::tibble()] with information about model components. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tidy")} #' #' @export tidy <- function(x, ...) { UseMethod("tidy") } generics/R/utils.R0000644000176200001440000000022615007440240013531 0ustar liggesuserslocal_load_all <- function(path, env = parent.frame()) { pkgload::load_all(path, quiet = TRUE) withr::defer(pkgload::unload(path), envir = env) } generics/R/sets.R0000644000176200001440000000425715007440240013357 0ustar liggesusers#' Set operations #' #' Union (`union()`), intersect (`intersect()`), difference (`setdiff()`), #' and equality (`setequal()`) for two vectors representing sets. Determine #' membership with `is.element()`. #' #' These functions override the set functions provided in base to make them #' generic so that packages can provide methods for different data types. The #' default methods call the base versions. #' #' @section Methods: #' #' \subsection{`intersect()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("intersect")} #' } #' #' \subsection{`union()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("union")} #' } #' #' \subsection{`setdiff()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("setdiff")} #' } #' #' \subsection{`setequal()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("setequal")} #' } #' #' \subsection{`is.element()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("is.element")} #' } #' #' @param x,y Vectors to combine. #' @param el,set Element and set to compare. #' @param ... Other arguments passed on to methods. #' @return For `union()`, `intersect()`, and `setdiff()`, a vector with all #' duplicate removed. #' #' For `setequal()` and `is.element()`, a logical `TRUE` or `FALSE`.` #' @name setops #' @examples #' intersect(1:5, 4:8) #' union(1:5, 4:8) #' #' setdiff(1:5, 4:8) #' setdiff(4:8, 1:5) NULL #' @rdname setops #' @export intersect <- function(x, y, ...) UseMethod("intersect") #' @rdname setops #' @export union <- function(x, y, ...) UseMethod("union") #' @rdname setops #' @export setdiff <- function(x, y, ...) UseMethod("setdiff") #' @rdname setops #' @export setequal <- function(x, y, ...) UseMethod("setequal") #' @rdname setops #' @export is.element <- function(el, set, ...) UseMethod("is.element") #' @export intersect.default <- function(x, y, ...) base::intersect(x, y, ...) #' @export union.default <- function(x, y, ...) base::union(x, y, ...) #' @export setdiff.default <- function(x, y, ...) base::setdiff(x, y, ...) #' @export setequal.default <- function(x, y, ...) base::setequal(x, y, ...) #' @export is.element.default <- function(el, set, ...) base::is.element(el, set, ...) generics/R/fit.R0000644000176200001440000000042415007440240013153 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("fit")} #' #' @inheritParams compile #' @export fit <- function(object, ...) { UseMethod("fit") } generics/R/accuracy.R0000644000176200001440000000057315007440240014170 0ustar liggesusers#' Accuracy measures for a model #' #' Returns range of summary measures of the forecast accuracy. #' #' @param object A model for which forecasts are required. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("accuracy")} #' #' @export accuracy <- function(object, ...) { UseMethod("accuracy") } generics/R/interpolate.R0000644000176200001440000000110415007440240014713 0ustar liggesusers#' Interpolate missing values #' #' Interpolates missing values provided in the training dataset using the #' fitted model. #' #' @param object A fitted model object #' @param ... Other arguments passed to methods #' #' @return A dataset ([tibble::tibble()] or similar) of the same structure as #' the input dataset with missing values from the response variable replaced #' with interpolated values. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("interpolate")} #' #' @export interpolate <- function(object, ...) { UseMethod("interpolate") } generics/R/rank_results.R0000644000176200001440000000066315007440240015112 0ustar liggesusers#' Compute relative rankings of a collection of objects #' #' `rank_results()` computes relative ranks of a collection of objects and #' returns a summary of the results. #' #' @param x A collection of objects #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("rank_results")} #' #' @export rank_results <- function(x, ...) { UseMethod("rank_results") } generics/R/tune_args.R0000644000176200001440000000213615007440240014362 0ustar liggesusers#' Determine arguments tagged for tuning #' #' `tune_args()` takes an object such as a model specification or a recipe and #' returns a tibble of information on all possible tunable arguments and #' whether or not they are actually tunable. #' #' @param object A `model_spec`, `recipe`, `workflow`, or other object. #' @param ... Other arguments passed to methods. #' #' @details #' The `source` column is determined differently for a #' `model_spec` or a `recipe` (with additional detail on the type). #' #' The `id` field has any identifier that was passed from `tune::tune()` (e.g. #' `tune("some note")`). If no additional detail was used in that function, #' the `id` field reverts to the name of the parameters. #' #' @return A tibble with columns for the parameter name (`name`), whether it #' contains _any_ tunable value (`tune`), the `id` for the parameter (`id`), #' and the information on where the parameter was located (`source`). #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("tune_args")} #' #' @export tune_args <- function(object, ...) { UseMethod("tune_args") } generics/R/calculate.R0000644000176200001440000000041115007440240014322 0ustar liggesusers#' Calculate statistics. #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("calculate")} #' #' @export calculate <- function(x, ...) { UseMethod("calculate") } generics/R/explore.R0000644000176200001440000000110515007440240014044 0ustar liggesusers#' Create an interactive visualization appropriate to a particular object type #' #' `explore()` invokes a function that starts an interactive, pre-defined widget #' (e.g. `plotly` visualization, `shiny` app, etc.) to investigate the results. #' #' @param x A object #' @param ... Other arguments passed to methods #' #' @return `NULL` (invisibly) or some other data type (e.g. tibble) depending on #' the application. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("explore")} #' #' @export explore <- function(x, ...) { UseMethod("explore") } generics/R/train.R0000644000176200001440000000055615007440240013514 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("train")} #' #' @export train <- function(x, ...) { UseMethod("train") } generics/R/varying_args.R0000644000176200001440000000040415007440240015062 0ustar liggesusers#' Find any arguments that are not fully specified. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("varying_args")} #' #' @inheritParams compile #' @export varying_args <- function(object, ...) { UseMethod("varying_args") } generics/R/var_imp.R0000644000176200001440000000056615007440240014035 0ustar liggesusers#' Calculation of variable importance #' #' A generic method for calculating variable importance for model objects. #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("var_imp")} #' #' @export var_imp <- function(object, ...) { UseMethod("var_imp") } generics/R/glance.R0000644000176200001440000000077415007440240013632 0ustar liggesusers#' Glance at an object #' #' Construct a single row summary "glance" of a model, fit, or other #' object #' #' glance methods always return either a one-row data frame (except on #' `NULL`, which returns an empty data frame) #' #' @param x model or other R object to convert to single-row data frame #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("glance")} #' #' @export glance <- function(x, ...) { UseMethod("glance") } generics/R/required_pkgs.R0000644000176200001440000000053715007440240015242 0ustar liggesusers#' Determine packages required by objects #' #' @param x An object. #' @param ... Other arguments passed to methods #' @return A character string of packages that are required. #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("required_pkgs")} #' @export required_pkgs <- function(x, ...) { UseMethod("required_pkgs") } generics/R/equation.R0000644000176200001440000000063215007440240014217 0ustar liggesusers#' Model equations #' #' Display the mathematical representation of a fitted model. #' #' @param object A fitted model object. #' @param ... Other arguments passed to methods #' #' @return Markup output suitable for rendering the equation. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("equation")} #' #' @export equation <- function(object, ...) { UseMethod("equation") } generics/R/coercion.R0000644000176200001440000000474415007440240014203 0ustar liggesusers#' Factor coercion #' #' Coercion functions for creating factors from other existing objects. #' #' These functions override non-generic factor coercion functions provided #' in base so that packages can provide methods for different data types. The #' default methods call the base versions. #' #' @section Methods: #' #' \subsection{`as.factor()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.factor")} #' } #' #' \subsection{`as.ordered()`}{ #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.ordered")} #' } #' #' #' @param x A vector of data. #' @param ... Other arguments passed on to methods. #' @return For `as.factor()`, a factor. For `as.ordered()`, #' an ordered factor. #' #' @name coercion-factor #' #' @examples #' as.factor(letters[1:5]) #' as.ordered(letters[1:5]) #' NULL #' @rdname coercion-factor #' @export as.factor <- function(x, ...) UseMethod("as.factor") #' @rdname coercion-factor #' @export as.ordered <- function(x, ...) UseMethod("as.ordered") #' @export as.factor.default <- function(x, ...) base::as.factor(x) #' @export as.ordered.default <- function(x, ...) base::as.ordered(x) #' Time difference coercion #' #' Coercion functions for creating `difftime` objects from other #' existing objects. #' #' This function overrides the non-generic `as.difftime()` function #' provided in base so that packages can provide methods for different data #' types. The default method call the base version. #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("as.difftime")} #' #' @param tim A vector specifying a time interval. #' @param format A single character specifying the format of `tim` when it is #' a character. The default is a locale-specific time format. #' @param units A single character specifying units in which the results are #' desired. Required if `tim` is a numeric. #' @param ... Other arguments passed on to methods. #' @return A `difftime` object with an attribute indicating the units. #' #' @name coercion-time-difference #' #' @examples #' as.difftime(1:5, units = "secs") #' #' as.difftime(c("01:55:22", "01:55:25")) #' #' as.difftime("01", format = "%H") #' as.difftime("01", format = "%H", units = "secs") #' NULL #' @rdname coercion-time-difference #' @export as.difftime <- function(tim, ...) UseMethod("as.difftime") #' @rdname coercion-time-difference #' @export as.difftime.default <- function(tim, format = "%X", units = "auto", ...) base::as.difftime(tim = tim, format = format, units = units, ...) generics/R/learn.R0000644000176200001440000000055615007440240013500 0ustar liggesusers#' Estimate model parameters. #' #' Estimates parameters for a given model from a set of data. #' #' @param x An object. See the individual method for specifics. #' @param ... other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("learn")} #' #' @export learn <- function(x, ...) { UseMethod("learn") } generics/R/hypothesize.R0000644000176200001440000000042215007440240014742 0ustar liggesusers#' Construct hypotheses. #' #' @param x An object. #' @param ... Other arguments passed to methods #' #' @section Methods: #' \Sexpr[stage=render,results=rd]{generics:::methods_rd("hypothesize")} #' #' @export hypothesize <- function(x, ...) { UseMethod("hypothesize") } generics/R/docs.R0000644000176200001440000000713315007440262013331 0ustar liggesusers# Modified from sloop::methods_generic methods_find <- function(x) { info <- attr(utils::methods(x), "info") if (nrow(info) == 0) { info$topic <- character() return(info) } info$method <- rownames(info) rownames(info) <- NULL # Simply class and source generic_esc <- gsub("\\.", "\\\\.", x) info$class <- gsub(paste0("^", generic_esc, "[.,]"), "", info$method) info$class <- gsub("-method$", "", info$class) info$source <- gsub(paste0(" for ", generic_esc), "", info$from) # Find package info$package <- lookup_package(x, info$class, info$isS4) # Find help topic path <- help_path(info$method, info$package) pieces <- strsplit(path, "/") info$topic <- vapply(pieces, last, character(1)) info[c("method", "class", "package", "topic", "visible", "source")] } methods_rd <- function(x) { methods <- methods_find(x) methods <- methods[!is.na(methods$topic), , drop = FALSE] if (nrow(methods) == 0) { return("No methods found in currently loaded packages.") } methods_by_package <- split(methods, methods$package) topics_by_package <- lapply(methods_by_package, function(x) { split(x, paste(x$topic, x$package, sep = ".")) }) make_bullets <- function(topics) { bullet_vec <- vapply( X = topics, FUN = function(x) { link <- paste0( "\\code{", "\\link[", x$package[[1]], "]", "{", x$topic[[1]], "}", "}" ) classes <- paste0("\\code{", x$class, "}", collapse = ", ") paste0("\\item ", link, ": ", classes) }, FUN.VALUE = character(1), USE.NAMES = FALSE ) paste0(bullet_vec, collapse = "\n") } make_header <- function(pkg) { paste0("\\code{", pkg, "}") } bullets <- lapply(topics_by_package, make_bullets) headers <- lapply(names(topics_by_package), make_header) help_msg <- paste0( "See the following help topics for more details about individual methods:\n" ) paste0( c(help_msg, paste( headers, "\\itemize{", bullets, "}", sep = "\n" ) ), collapse = "\n" ) } last <- function(x, n = 0) { if (length(x) <= n) { x[NA_integer_] } else { x[[length(x) - n]] } } help_path <- function(x, package) { help <- mapply(locate_help_doc, x, package, SIMPLIFY = FALSE) vapply(help, function(x) if (length(x) == 0) NA_character_ else as.character(x), FUN.VALUE = character(1) ) } locate_help_doc <- function(x, package) { help <- if (requireNamespace("pkgload", quietly = TRUE)) { shim_help <- get("shim_help", asNamespace("pkgload")) function(x, package = NULL) { tryCatch( expr = shim_help(x, (package)), error = function(e) character() ) } } else { utils::help } if (is.na(package)) { help(x) } else { help(x, (package)) } } #' @export as.character.dev_topic <- function(x, ...) { sub("[.]Rd$", "", x$path) } lookup_package <- function(generic, class, is_s4) { lookup_single_package <- function(generic, class, is_s4) { if (is_s4) { class <- strsplit(class, ",")[[1]] fn <- methods::getMethod(generic, class, optional = TRUE) } else { fn <- utils::getS3method(generic, class, optional = TRUE) } # Not found if (is.null(fn)) { return(NA_character_) } pkg <- utils::packageName(environment(fn)) # Function method found, but in a non-package environment if (is.null(pkg)) { return(NA_character_) } pkg } pkgs <- mapply(lookup_single_package, generic, class, is_s4, SIMPLIFY = FALSE) as.vector(pkgs, "character") } generics/NAMESPACE0000644000176200001440000000167615007440266013306 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(as.character,dev_topic) S3method(as.difftime,default) S3method(as.factor,default) S3method(as.ordered,default) S3method(intersect,default) S3method(is.element,default) S3method(setdiff,default) S3method(setequal,default) S3method(union,default) export(accuracy) export(as.difftime) export(as.factor) export(as.ordered) export(augment) export(calculate) export(compile) export(components) export(equation) export(estfun) export(evaluate) export(explain) export(explore) export(fit) export(fit_xy) export(forecast) export(generate) export(glance) export(hypothesize) export(interpolate) export(intersect) export(is.element) export(learn) export(min_grid) export(prune) export(rank_results) export(refit) export(required_pkgs) export(setdiff) export(setequal) export(specify) export(tidy) export(train) export(tunable) export(tune_args) export(union) export(var_imp) export(varying_args) export(visualize) generics/LICENSE0000644000176200001440000000005615007440240013053 0ustar liggesusersYEAR: 2023 COPYRIGHT HOLDER: generics authors generics/NEWS.md0000644000176200001440000000076615007443266013167 0ustar liggesusers# generics 0.1.4 * Patch release for CRAN # generics 0.1.3 * New `rank_results()` generic. # generics 0.1.2 * New `forecast()` and `accuracy()` generics. # generics 0.1.1 * New `tune_args()` generic. # generics 0.1.0 * Maintainer changed to Hadley Wickham. * Re-licensed with MIT license. * New `min_grid()`, `required_pkgs()`, and `tunable()` generics. # `generics` 0.0.2 * Removed the `data` argument to `augment` to resolve issues with `broom`. # `generics` 0.0.1 First CRAN version generics/README.md0000644000176200001440000000447715007440344013345 0ustar liggesusers # generics [![R-CMD-check](https://github.com/r-lib/generics/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/generics/actions/workflows/R-CMD-check.yaml) [![Codecov test coverage](https://codecov.io/gh/r-lib/generics/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/generics?branch=main) `generics` is designed to help package authors reduce dependencies by providing a set of generic methods that can be imported. For example, if a package author wanted to include a `tidy` method for their object, they would have to import the `broom` package to do so. This would work but would potentially increase the number of package dependencies required to install and/or test the package. ## Installation To install `generics` from CRAN, use: ``` r install.packages("generics") ``` To install the development version, use: ``` r # install.packages("pak") pak::pak("r-lib/generics") ``` ## Usage `generics` is a simple, lightweight package that contains S3 generics to be used by other packages. Some examples are: ``` r library(generics) #> #> Attaching package: 'generics' #> The following objects are masked from 'package:base': #> #> as.difftime, as.factor, as.ordered, intersect, is.element, setdiff, #> setequal, union fit #> function(object, ...) { #> UseMethod("fit") #> } #> #> tidy #> function(x, ...) { #> UseMethod("tidy") #> } #> #> ``` To use `generics` with your package, we recommend that you import and re-export the generic(s) of interest. For example, if you want to provide a method for the S3 `explain()` method, you’d using the following `roxygen2` code: ``` r #' @importFrom generics explain #' @export generics::explain ``` As an example, the [recipes](https://github.com/tidymodels/recipes) package defines a number of `tidy()` S3 methods by importing this package (whereas it previously depended on `broom`). ## Documentation When searching for help on a method that is exported from `generics` by one or more packages, using `?method` will show entries for all exported methods. If the version from `generics` is selected, the Methods section dynamically lists all specific methods exported by any loaded packages. generics/build/0000755000176200001440000000000015007443305013151 5ustar liggesusersgenerics/build/stage23.rdb0000644000176200001440000006042415007443305015120 0ustar liggesusers[oI.*]HQ"Y$vKKEJԺ -{ϞdULXU%3ma؆|ma\++"V*VZZ,bC?0*j=_MwBnm~ۼvӮf+ݺ6fݲT{Z:ȃ+/%/),t zURCM3Z(K_=/  '(Z kݻ5a'Q4oxC,C ԣ(GXU9AF(ZC(PX42ފFz˷{UwEEFK^uhs(3o)|$g!faxp^\\Vn8F_ΆWc{2]B}rhٗxnc%cU7NP{7&Hn v|_; jO"^GƩ[B !j`Hzw4J*9r2aOPS1t-y؊feee;A4 2EP"X4jN#3+58?CUM:*ao47\n-&gQ>"J\&іQͧݠ{m3h] ͫI J8}آSx!Z@}lyFwΞV0Dp0?b_wj~RCh' ¶dc+eKU\iߖS[ؑ4+7 qjj5!fj C7 GӪm?caI]4W{vvuo#zsN]{a'S6[@Euf&`5u{tC_ikhr4\+ jPEG3xzWgw-xMw9!‹Z΋୻Z>,y [}]W.C*ZYs|Lwwq {wtWNW7cLpcJ5K=헂۬{o+?WF7]ULN#hthrщRvs:|+ە|3 `j yX߽n$SKLBA?<:~%dMޜ"KD[MOzZ=R Y=o9;F[F3G"m9{Q^6\zp#O?۞:oh3;ao9ѓ>Bx=FWGVir.1x] Ns{+}ѳhǣhma`\~>{W8Q [u!<_04yG5_>duۿl7[K͙S}pv=iQC7 Þ՗ktݍ571k*< "CCUXG3S~g ეäAwBFU߉can޼z=f\`]x2Q6u{B~ݱEKJ>s/r߳ϻ͢agc ~Y[{iŏhX|,=]\gK3?[_|MF`)t|wi})Y.A4tCk{;$/ ⧧sg ]lH׋3Rgs7܍~Lsc#?acRß?&}D{]]֒sV\T(G)zzFÉY5.PzxCס7ð\Z^|z9Z(YlK9aK!3N->AfAg;&CFsl]}wxsM-4(q!݅W N>YgOb 9"Hߍ.>׋ gDW)"GW< 4j\}+І y] WĮKTaqCzۉfMVI')je, XTQ7 T?!aLj5z( N5Uihʑ*vLFCĜ8q*Nq-՟ BP)2Z*?!T򓜀 I?);BmTWK2C=67(p/;lwC,9W?WkM[3kʋrU{C}M58?CgQ9 P_b'*r暼E^SREa/TN♲kd [;7TC,.aLo1)5eyll^Uw $yN| ykguʳ$cZ_ƪN-l5G%쑨=J!0N0K|PX{+ S?aAFZ>\i@sEm;"*ק%Umxw 鴆[slVV#9WOcRvn$' > Q^Em ?Eru!S9*~.y='Ψ, TpH(qa#9q@1Su-x SacΣc>D465TC,OzECTI2c%[ ʧ9و92QvB;`0]li7U]lA)@9Ģ.8,"(i}V/ ؇=8Si0”a*ZXup{i:{܊74j^uN~Yf<!LJE̔g3j`H}2 8mՋRoxR3Q&GjBdT oPv#'oBس~3`w^95uRL-ScbNd:NN޾;&I`jv(\ּmtl5z$m,4>f+(_1PUVc[a9O/[<fZ-S\i5'nVn[OIЅe;Ft|h 8?i'o|Sq.sZ,#>@ΖuB|Ce/?ht^@I{?)ktyQKn(n/VijD .QO2ɵFi[(Rn6阷9bZ > Qso T;K,^X}fQjA NKW-L ~>RwwSH'=s;(CqG Ɠ($2ꡢ&a6}&;D6eIī]Dy/qE;%ip; "mC=/W?9MKY҃h~kG\-v#N2@'8Ģ*v^|槍=~\@\DPi%IǾV8﹤|J(* > w48i u+a1 ]Q~|;W{E4OijgQU@%rBXCNam9ٜ|ZM;kC v j8,! LR=ghN"h^5^SSZrOͿH(etԡf9]99O0+ώ~e2_SBmq\۫67{%jo^6`3y3CX0Vu3j}^l_67/[DgQUjc u! ͐lgaφꮪV6CɏÎ:-ʭ;s6Li <$PaCbMZb/mՎ06],p& 6VP]@n&2HKb!!\ce)Uq)Je, 3y@bI_&P&bLLk %bdCZuoژI*"8XD>YgV1e8E$SQzbr\"T~Ad5KO-GLhb.#OU>0/LQҠ2^2f 3E&e6-,aGAsAIe5N$2[0(7PV?DkN\:Y}}:#OP@neڋEhW>А\ ՞\'9V]bn`I0X:[6v='/Ξ-$* Ce:e%)>*rT)M09˄?Fae҄K<buy-aS i CRT݅W f>KUw&E- d> E$)WdV衂ZMпI."X;o5X%Qk7aj%h8k, CU{@^ {O T?![gP&5b 7e6mEY \(;<(h";y0~!y*eDf8"ߔH[GT\7N/ivYkl$yk2 Ʀi5r MnRaDPYΜC"H SMCIv$`gcC=s='$t~] tfG (HUG 1YRӈQE2>7Ps_ޖph  lf:KĿC=7D]j=$-Of̐Fc¡h[m8!MCkJ<#ƪ.w󔤾m[k4nmChBFaN[}bkE-LcCeЕV5)ʁ@Mq:*OV-u7a wu;hmVF|ح[lzv7tEʱֻD:v9{֓6A$F2~ـߢ|uAMxTd?A9w٬OQT[tD#܏P÷5F(~ OE(c%5SnjCo:Xh]K#gN3K*҇%5N=1$J>KUw&BIc #)yf\th=NR^([RnRur(L PZpH!<ĕPV“&p(4y,Xl>8ieRk-TEJFa1Y h2ؔiT"fPh"Iܶi@shJQuIfaޡ/.ۺ+ĸ$S$+TՉw9L%ɻ uY׽V񆬆VQ6S(Ľe3X,XLɉG%)z騤9'*ɔD%)޽RT&ȉJ*k"CJ"ʧOem:aA T8wug/쮯UL'/:\70Ma0Ģ*zAlǞDFx59QwVMkv4b^ѝ XSf-N\1Ī\TN\8QrE>>7TOr]^ 2`^L,m+l(Qe!SNŎ|jr,2xj \? l"VP[y5&ъ9BPCONHEvfq2vW l|7oF2L-†bRG4""[B$IeEI)A 9O!ƒ3wPфEǻ(5oB+MX)y$6dһh'Q&9z)GSNC9J:Iٔ 7rvTgGzE^FVNPhlc4XL6j_lfrє對w6j 0lb\MU(_N'dr5w42sBrє5lS&Foas̝}{_ ˛8!FYڔnf9$)"lZ3&Aѹ[=(k5Eh[ܳn;nu֝{&8 [(K+ZYq2Ŵ3S6=MrrmB=3e3EzFZT0թ!:Ք}r^*iJ,YX ɏ3܄rHMT\a1=6(@Ay'rŴ9$&O)Y,g!LyQIxJ$&!ʚI"bLU {X(2@j d4 0@ʕ24z C=c}M?0$$M0@4ҦTȔr 9aVH|r,2D}p;Kߦl) ָn[Au/|QYetC,5Dl, @(SX l~¼IpM?VPM&)p;6aC,lrQbϷ!2XRS:*BEyCA8B4Tl",UZx*$"dKrx I/)wZ#i !SnSBr!I&Ll1G-l ˛ iM)Br6Cѭ3.RQ :_j(|PSVWm+."P#|(K)T\/2e>h8&MBL$Rw|C!7K\tvC28ߊj0lN4sCi8>.piSjk!]+eGfb/>R"}dKr#I/)>wZ#Qq.qv% pBVjѤak2LmpR#9!E5}\YΜ NH8!SM Iv$sn%8]u=?SX$So'.RkE3nmvqϞ2[klri;9wqc;oݶۄ])դhC;廘PhjUSŮ<{sHpGuUbʼlχ_AF{>Oq$^fA^uwkF^}Õfy"K}$ ]c" ۲ʌ#NL9a>'п@+gzB{MI2EEM,KG통yX1DET :0~WHyA2l-zBY Rb pcUkGI !!eFA2A2!Z$03K*҇%5=1$A2`7KU"H4A2'_dMu̿K +T<%\ A !]5NBctEq28c8b˴9b91I"XP`ٔ=xhE{{7?g|iOk4SYg͛e3B4S:bLEw.(\e7!r I7٧Nġ7# &ǔH{6DIez(7PSșR#'(FQtoA1e9sNP)/ Q{SMS(Ml[l:p3)+u}!RCҹPͥӨM9USLT4jS&Foas̥QArMQ(KRӨM,'ZfzҨVHG|vȞJ32ۋ75Aƴ"QܶN[AmQW֘] A T>Y:SuX>n",}aj5L8ʤZ)b +Z[(eo3Ģ$Ƙ"e3"Sfa$T))"6#`umB$LyJY$)eEk,*[J)&hd)O!LCipd{&rȔEwDjH#L[1,U9d- 0(_W6yR ě(vEI` aW{M." Ҧ bS6cD,C LL\KUw&~A >܊S_ܚߩ6]g+ʗu&q . 5DQBYZ`'Ph)O,3cY6_!2¦|%ay5M2oMi3lLJ~x[ݥy(_x(0Pb1FɯNm.˙sx`S^+޽l rx6D*+ρcѿh~ީssáJWgc` 6R4_U)e0PRMl1?xa*JN˛,Q6YNҭ3ԑ6yљc'6k_І|׺[A}Qg䑄BPV4Vdyd&9ѐlC)ڄL2JyhSio^ eWZr6CЭS>;hϑOtMBReȍӬ߄Hύdm+pyeu)009i,hF)cK;7ҔE0ExgqnEF2 cbdC_&PK1iOzs:F>bL&]W 32ɋ3HrrGI&w}S\-:o8>y|D3{oN[Ol&ؠG(?2P XLirrlner6ȔAwj6H#. "fy3g@rm{6 N]`{BG}$5 o#n3S ]zq3 Vy8rqݰ7mKvs?He|H/ 9lڞjg[rA:זmzn+w6g5 hkhH!zMcdP44M \ %MU3xw S\)rQO{(3tP2Xh] ң*F@ AIcxO .j0Ͷ\-]V.[!y1칿O~Dvy\:ݷ*.6^ A dHY nb 6O7 TtxfiI#-M?!Mv9cqkP~'[?!*Eաf9`-$ KS$)O!%=l[q2.#A>sq*[ ~x\§ݷ*.nGB !5Rb4§bk`c,9̒C(LKhc{vxI=s^{l&kL)gf(׍(G5 1.9ԏM{7MӑeHJf;RUD<2g PAgQ>kޗsb1FɇSAl *˙s S^C)޽d r &PLr='$PDu5͛ _h 2?TG 1YI5/O[wu-D e=i5rl%|d&gwmt$뗈Gʺ~ gvk/L7nå[Ι=g véu,oQV~sK:ނ4X@.7E*(V+cL@z@՞4ʉebQl- fzk4CwQ:џ(,#Fk囙KSrI ,5/rm1rnHN?P) CZ;"'$S!}SZI >T9m"'L5Ta*rBk`94F==!}hPR;P݅W 8YGNH9qSEh:f? ms1ش.[AePSV-1!Y޸yT*'q2Q IpŦ Տse#$Lj]"Kk %@9(8<"&=nbf"FH2SN*EաFHe"Z2b;$>B 0#9a>RvXɈ-PO{3׵ʫwX@?ݚ6eGB>uv KAy'rŴ9[{>,gΉ0E9w/a r%ʚSgrMn?{{6qz Uk=fko|KK)ךr*:Ce2_+\L6P˯ 7TC,.o"FYڔ_kf9r6do |ΰDzh]^Hyuk{MgqR.Ek]yǭP3%ZpH!%ҪQ4au75X ibMxheRk-U˴Q)h2ʅ,,Fba\ {r'Q^h"Km_ f#b|:4pG$ڜ rIY ZBufqcQ<ْݚIS=6{(@(?!jDwϠLsgM.l'kIR؉2;v5csǭn"X,(߱yK4QPMVW*ѱ 'PJVׇ~hq'p"Dd;F<2qήbtIeUjItxjS,=fC=GK? uӬË$z݃PIoeQo5:[݈eӺm߭{1;"MN(/k\deV.Fj W]4!M[ceJ*U||:ܴl'7N 70Y v4^n- 6)B0glj~Praw!|/wthn5#K 7c{ٶkNseYM =oP*zq^ 32SM yP}C!/k6MV9j%+ģx}*ZER9hxw S*L7sʍVS||A8BZUY,ɘYڨ5T>4(q!݅W V9Y3*ڂ>$4@~r, m|iZ~B36VPY@AB3Qa jgR\\(-ٔArafEMY$'Y"G[\ز$ż(T$,4ʧ[S3BR:԰bLw.]WC@`MM)$' EMo*q HZ1"" k"8]vGE3f bRΠ|Ƽ+Cg9bZM.?qYуM^3$.eŻWJ\6 Mg0eb˜% kVżdS>SE?a3%+;/ٔɦ[%jd.o"/FYڔlf9yr6ӓL |0=z؂4O<4(7dw^5ci.g @@CA>xm<\"ic[~6VPY@AQay^jӊRU\5-˔AraB#)BcM>6o(XƩMPm= AQ)Gɡ$lNo4H<Ǒ!򺕜5i&$'IB ;3TC,ȡ49~ OуMSxe9sgʋr(<ŻWL5AW,H[e*=Ub,˔6GQ2*Utʮb0KR3Lljf&2iM]l%g3=]tg x 'v>?S^E&v&׎wjCܮ xXޅ+4(+N"zrh8LY |YJy2A)@G8L 0͑3#hlc4XLCj_BQtY֎pEE=jr"^AJ=]V_)OqŴǰ# TtdqIۊB>yL0@sPK͟uQX+%>/pEe[ǕW 3TfRU"?F9Գ;gےDrlav+Z|^vQ@BY>cKV9R4KebC\&m" 9ϙ1(W6̾B0Ie3$|x [fLs6ʷMs82*^ٯpv A4?)kvi7qp*{vϲ԰jz͔iPCh'ݧ@Q& r} ۋxe TA<1m9m#BM(/шhmDCKbEě(f=ϟbeć(?4c[P~>ٴ1m1ʏdHF 9[ğQY(N O$쾲lH`¡"xBU3ɏtb KN{NRh@.2k,Q60FbI[ғd3(f 51ht3?3c$V>&##f%Y ć(ǠwP~fFLz?dZPgĿF{4,(⥕nK wbU(ty*YIS(RҼ^-O\њ gnƽc6(tuZMlHju|߆U+,ʳ;T7xekEz ?xe}y0A_` uCC&@NX[h;8>[\nhs{jW755Ȧe|̣aL[y3[c=4 p'*iThםбQE PNi]kN&@dl#9[C>"2ԻG3TmG\}O"ܔj[]ƻcHϨPRcZtTyt5Np>G ̻9TC,>ßB3:J4:]{bXDߍ ʟ?>@G'PXK*e;:TC,nOT}OR!O;>)0 L)hw(f,Z(P[=@A2idPk:X;@Ɵ@ C)JGgzK=DC| Q,X!7>,jRA82!߶! TpHkYڗl-j@ 4sKx:6bQl="nސ?d0ʴ;dwxb$aȦ 2V R,iW[T[Uń_u8[+"au,X`Ht&T_P鉱'mQn]Lޙ5?t|oʭG/S-vk{}@.Wm+. ǥ2Kb!!>y9i, ?n8>RKOpendPX&(/YNl*vg-oL /! ܔ \K o.F^\-oW(nwى V#M|Vr77+޽қM58?CgQˠ7 b\(6וU[ފ>ylXUi*;)+yRM#IsLl)玦:j:>Xh]^ nA!mw_=ʿ7?C/8bZR( ]XGh-482a?cҬ\a.ӗ!4} C,^49dwR&x`+nC=ʲ-$Zdy&(IVMoe+Pe{"ʋOP:2m>brZ\o[FVE#~{f x7(ƅe֫3&+UzpMCA C,2aB{ϢB0#9>Rv(PO{ 37y/׬{ziVE*$:UB (K)1ŕXӎq5ec\c'vh1lcEM=tk wm L3'R6'2eHLy"bTM:UKL)/a$lHi0EղD}N)ZNmv۱}D;\o^/yN!5ae~78xB({S(J9NyzcŴ<6 i汸Yo2kx,η}8!*˙!eʋ9ĢXl#uݟ#:0rg5IKINcZV3f ҡ;k%խZ98Şr.)ʟj$F"g(l# } #sQXXFiJ0XN̨vԳSrHXhVv[~fs꓈ߡ6s Z&ф\(KٽnM8m q ,~8.n,ڳ~vv4&F]m&mXW?G㇝פ0?"/7I֢]IxޚQ_ ʤ+9wcv^o ^AJ;xV;V3tf;`I(T*QIk39s@h&#{s/p],Z^iğt 0eطuHICe2f_{[SMvUPx 67+ɲQ^Lb]馶L XQ+@3Ģ*aǏF #Ov\\pviAvmEOغsC>FZ֚|kd. C5sJ*X[8\0'{ѱmJ 4"(nޠK_}8!Ml b⣛zE~ux?~z {7߰6VPO~<Km};y&>@ٛ975_+FG#%Qj퀯wqPt4~73Ceoio ʤ-[:M`K$+=TM֣f=9]|97Tw*K#,ca>"JWPV  h4_6[ڮ\{8xe}9營^A@)(_;`X}/=)~@3(V)Ŏ8yk+¡"Xg3TrʩRM;J甛8z*m55TC,%UKeZcJC]xTEf |Τ*xɊwn:ouJ+w *\.QiRem'6QZR'Q)XEj(PXm>i2uKZB%M[&{Z[@p/r66$32ZR_\@4dXH ŠE-V)5,u UNc 9 1є1J:>Uuo}W/I\FA\uqbFR:ɿ ;J\62Ō "dv%@e[4f5O|ZGU(vE<mvٗRlr꽨b2mrUk(_fQ]LʗPg*".l8:9%X>3il>GG1T3XLs,Gcy%ifsә)re{32mFPX4ݽҹ`ܺlx%-Uă@ OΓhIeg֖ |x?'~֛_&x!%C&(n֊:Ut@6Bg4 2CmX E!) s"2\s E{`;H+E저(|B8,"OJ)\9ʟk3 ! .x;f]*AH8_!>E-7Ef, w(NB(x"++r`rϾr!H;q\R<e/:ϬB|] ʏ4t '( hO[C])AVJ{U9-.r\4Xg<~.\4k0Oa8r8 28EOuK 츎BobnZ[k==CS͢{;M{ORXAyE^.`6)NtLymuTy찖Wr^.9RUr8Le[e\h@.eSPb2ZP EBY=gvbt|*-J4(v4sА?XTm=}A[Gm=?B٢eN"A $oϢ|V.$^0=9I!p/@sߡvYO|><3@(r ʤP 9/"; d,m TpHQrwUٙ0.gLZ䁉=96Y߂_x[: mo6VP]@DTY[p%R [pM%32\ ֎*\S6ay hQ4o^Lt{d:L"H6<U$|TCQRTj69Y`W֗KEhhsb.)W%t}\ry5K^\7N3! gcNZI3U:}lʙb1FN6&'֟_.'c ^.[3ɘܪʴ\PX4ݽR2&Ggp*<)(Ͳ [0klJ͇{k@݅W f>KUw/E9|`Q -bE+tX>DF"\AP^R֛] A a,JY [5X4 َi@9؅gLj a$.%Դa#bd++^ʹmDbDžDHxjw SSݺ瓮|]ISƃ x$b{>RK//DRɔJR6$H ut/\*{zi,k_zkgQ^(7PV#q'E689)/a^q29SY3"Dlej*W9"dʕ@jIӘ\$\Ԓ)M09樥W7T5Xh]TL,mJL,Zjn읡x(_)2W^?5/i[k.w *\.QiݯPC4]m,h,VʘKSF82lRKE_si*P4X4Y/*cםб7ߖD)(h"{8BUl ,ݞ%]5cVkp'&zp[Ai;TsߴL}k{  GWלrf6N}Mlna=S~߀ /6|];M+|wNoѨwSv|rn4kƒGBh#{P5NFī7T= 3.6) Imports: methods Suggests: covr, pkgload, testthat (>= 3.0.0), tibble, withr Config/Needs/website: tidyverse/tidytemplate Config/testthat/edition: 3 Encoding: UTF-8 RoxygenNote: 7.3.2 NeedsCompilation: no Packaged: 2025-05-09 18:17:41 UTC; hadleywickham Author: Hadley Wickham [aut, cre] (ORCID: ), Max Kuhn [aut], Davis Vaughan [aut], Posit Software, PBC [cph, fnd] (ROR: ) Maintainer: Hadley Wickham Repository: CRAN Date/Publication: 2025-05-09 23:50:06 UTC