Load the packages, environment, and random number generator seed of a target.
Usage
tar_workspace(
name,
envir = parent.frame(),
packages = TRUE,
source = TRUE,
script = targets::tar_config_get("script"),
store = targets::tar_config_get("store")
)
Arguments
- name
Symbol, name of the target whose workspace to read.
- envir
Environment in which to put the objects.
- packages
Logical, whether to load the required packages of the target.
- source
Logical, whether to run
_targets.R
to load user-defined global object dependencies intoenvir
. IfTRUE
, thenenvir
should either be the global environment or inherit from the global environment.- script
Character of length 1, path to the target script file. Defaults to
tar_config_get("script")
, which in turn defaults to_targets.R
. When you set this argument, the value oftar_config_get("script")
is temporarily changed for the current function call. Seetar_script()
,tar_config_get()
, andtar_config_set()
for details about the target script file and how to set it persistently for a project.- store
Character of length 1, path to the
targets
data store. Defaults totar_config_get("store")
, which in turn defaults to_targets/
. When you set this argument, the value oftar_config_get("store")
is temporarily changed for the current function call. Seetar_config_get()
andtar_config_set()
for details about how to set the data store path persistently for a project.
Value
This function returns NULL
, but it does load
the target's required packages, as well as multiple objects
into the environment (envir
argument) in order to replicate the
workspace where the error happened. These objects include
the global objects at the time tar_make()
was called and the
dependency targets. The random number generator seed for the
target is also assigned with tar_seed_set()
.
Details
If you activate workspaces through the workspaces
argument
of tar_option_set()
, then under the circumstances you specify,
targets
will save a special workspace file to a location in
in _targets/workspaces/
. The workspace file is a compact reference
that allows tar_workspace()
to load the target's dependencies
and random number generator seed as long as the data objects
are still in the data store (usually files in _targets/objects/
).
When you are done debugging, you can remove the workspace files
using tar_destroy(destroy = "workspaces")
.
See also
Other debug:
tar_load_globals()
,
tar_traceback()
,
tar_workspaces()
Examples
if (identical(Sys.getenv("TAR_EXAMPLES"), "true")) { # for CRAN
tar_dir({ # tar_dir() runs code from a temp dir for CRAN.
tmp <- sample(1)
tar_script({
library(targets)
library(tarchetypes)
tar_option_set(workspace_on_error = TRUE)
list(
tar_target(x, "loaded"),
tar_target(y, stop(x))
)
}, ask = FALSE)
# The following code throws an error for demonstration purposes.
try(tar_make())
exists("x") # Should be FALSE.
tail(.Random.seed) # for comparison to the RNG state after tar_workspace(y)
tar_workspace(y)
exists("x") # Should be TRUE.
print(x) # "loaded"
# Should be different: tar_workspace() runs
# tar_seed_set(tar_meta(y, seed)$seed)
tail(.Random.seed)
})
}