Return an igraph object with the dependency graph of the pipeline.
Usage
tar_igraph(
targets_only = FALSE,
callr_function = callr::r,
callr_arguments = targets::tar_callr_args_default(callr_function),
envir = parent.frame(),
script = targets::tar_config_get("script")
)Arguments
- targets_only
TRUEto restrict the output to just the actual targets in the pipeline,FALSEto include imported global functions and objects as well.- callr_function
A function from
callrto start a fresh clean R process to do the work. Set toNULLto run in the current session instead of an external process (but restart your R session just before you do in order to clear debris out of the global environment).callr_functionneeds to beNULLfor interactive debugging, e.g.tar_option_set(debug = "your_target"). However,callr_functionshould not beNULLfor serious reproducible work.- callr_arguments
A list of arguments to
callr_function.- envir
An environment, where to run the target R script (default:
_targets.R) ifcallr_functionisNULL. Ignored ifcallr_functionis anything other thanNULL.callr_functionshould only beNULLfor debugging and testing purposes, not for serious runs of a pipeline, etc.The
envirargument oftar_make()and related functions always overrides the current value oftar_option_get("envir")in the current R session just before running the target script file, so whenever you need to set an alternativeenvir, you should always set it withtar_option_set()from within the target script file. In other words, if you calltar_option_set(envir = envir1)in an interactive session and thentar_make(envir = envir2, callr_function = NULL), thenenvir2will be used.- 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.
Details
If you have igraph >= 2.2.0 installed, then you can debug
cycles in your pipeline by running igraph::find_cycle(tar_igraph()).
This helps detect cycles in the dependency graph of the pipeline.
A cycle happens when a target directly or indirectly depends on itself,
which is not allowed. igraph::find_cycle() returns a character vector
of the names of the targets and objects involved in the cycle
(if a cycle exists).
See also
Other inspect:
tar_deps(),
tar_manifest(),
tar_network(),
tar_outdated(),
tar_sitrep(),
tar_validate()
Examples
if (identical(Sys.getenv("TAR_EXAMPLES"), "true")) { # for CRAN
tar_dir({ # tar_dir() runs code from a temp dir for CRAN.
tar_script(
list(
tar_target(x, 1),
tar_target(y, 2)
),
ask = FALSE
)
tar_igraph()
})
}