-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#' @title Get the random number generator seed of the target currently running. | ||
#' @export | ||
#' @family pseudo-random number generation | ||
#' @description Get the random number generator seed | ||
#' of the target currently running. | ||
#' @details A target's random number generator seed | ||
#' is a deterministic function of its name. In this way, | ||
#' each target runs with a reproducible seed so someone else | ||
#' running the same pipeline should get the same results, | ||
#' and no two targets in the same pipeline share the same seed. | ||
#' (Even dynamic branches have different names and thus different seeds.) | ||
#' You can retrieve the seed of a completed target | ||
#' with `tar_meta(your_target, seed)` | ||
#' and run [tar_seed_set()] on the result to locally | ||
#' recreate the target's initial RNG state. | ||
#' @return Integer of length 1. If invoked inside a `targets` pipeline, | ||
#' the return value is the seed of the target currently running, | ||
#' which is a deterministic function of the target name. Otherwise, | ||
#' the return value is `default`. | ||
#' @param default Integer, value to return if `tar_seed_get()` | ||
#' is called on its own outside a `targets` pipeline. | ||
#' Having a default lets users run things without [tar_make()], | ||
#' which helps peel back layers of code and troubleshoot bugs. | ||
#' @examples | ||
#' tar_seed_get() | ||
#' tar_seed_get(default = 123L) | ||
#' if (identical(Sys.getenv("TAR_EXAMPLES"), "true")) { # for CRAN | ||
#' tar_dir({ # tar_dir() runs code from a temp dir for CRAN. | ||
#' tar_script(tar_target(returns_seed, tar_seed_get()), ask = FALSE) | ||
#' tar_make() | ||
#' tar_read(returns_seed) | ||
#' }) | ||
#' } | ||
tar_seed_get <- function(default = 1L) { | ||
default <- as.integer(default) | ||
tar_assert_int(default) | ||
tar_assert_scalar(default) | ||
if_any( | ||
!is.null(tar_runtime$target), | ||
tar_runtime$target$command$seed, | ||
as.integer(default) | ||
) | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,3 @@ | ||
tar_test("tar_seed() outside a pipeline", { | ||
expect_equal(tar_seed(), 1L) | ||
expect_equal(tar_seed(default = 123L), 123L) | ||
}) | ||
|
||
tar_test("tar_seed() inside a pipeline", { | ||
x <- target_init("x", quote(targets::tar_seed(default = 1L))) | ||
local_init(pipeline_init(list(x)))$run() | ||
expect_true(is.integer(target_read_value(x)$object)) | ||
seed <- target_read_value(x)$object | ||
expect_false(seed == 1L) | ||
tar_destroy() | ||
x <- target_init("x", quote(targets::tar_seed(default = 1L))) | ||
local_init(pipeline_init(list(x)))$run() | ||
expect_identical(target_read_value(x)$object, seed) | ||
tar_test("deprecate tar_seed()", { | ||
expect_warning(tar_seed(), class = "tar_condition_deprecate") | ||
}) |