tar_cue_skip()
creates a cue object to
skip a target if an arbitrary condition evaluates to TRUE
.
The target still builds if it was never built before.
Supply the returned cue object to the cue
argument of
targets::tar_target()
or similar.
Usage
tar_cue_skip(
condition,
command = TRUE,
depend = TRUE,
format = TRUE,
repository = TRUE,
iteration = TRUE,
file = TRUE
)
Arguments
- condition
Logical vector evaluated locally when the target is defined. If any element of
condition
isTRUE
, the pipeline will skip the target unless the target has never been built before. If all elements ofcondition
areFALSE
, then the target may or may not rerun, depending on the other invalidation rules.condition
is evaluated when this cue factory is called, so the condition cannot depend on upstream targets, and it should be quick to calculate.- command
Logical, whether to rerun the target if command changed since last time.
- depend
Logical, whether to rerun the target if the value of one of the dependencies changed.
- format
Logical, whether to rerun the target if the user-specified storage format changed. The storage format is user-specified through
tar_target()
ortar_option_set()
.- repository
Logical, whether to rerun the target if the user-specified storage repository changed. The storage repository is user-specified through
tar_target()
ortar_option_set()
.- iteration
Logical, whether to rerun the target if the user-specified iteration method changed. The iteration method is user-specified through
tar_target()
ortar_option_set()
.- file
Logical, whether to rerun the target if the file(s) with the return value changed or at least one is missing.
Cue objects
A cue object is an object generated by targets::tar_cue()
,
tarchetypes::tar_cue_force()
, or similar. It is
a collection of decision rules that decide when a target
is invalidated/outdated (e.g. when tar_make()
or similar
reruns the target). You can supply these cue objects to the
tar_target()
function or similar. For example,
tar_target(x, run_stuff(), cue = tar_cue(mode = "always"))
is a target that always calls run_stuff()
during tar_make()
and always shows as invalidated/outdated in tar_outdated()
,
tar_visnetwork()
, and similar functions.
See also
Other cues:
tar_age()
,
tar_cue_age()
,
tar_cue_force()
Examples
if (identical(Sys.getenv("TAR_LONG_EXAMPLES"), "true")) {
targets::tar_dir({ # tar_dir() runs code from a temporary directory.
targets::tar_script({
library(tarchetypes)
list(
targets::tar_target(
data,
data.frame(x = seq_len(26)),
cue = tarchetypes::tar_cue_skip(1 > 0)
)
)
})
targets::tar_make()
targets::tar_script({
library(tarchetypes)
list(
targets::tar_target(
data,
data.frame(x = seq_len(25)), # Change the command.
cue = tarchetypes::tar_cue_skip(1 > 0)
)
)
})
targets::tar_make()
targets::tar_make()
})
}