Learn R Programming

drake (version 5.0.0)

diagnose: Get the last stored error log of a target that failed to build, or list the targets with error logs.

Description

The specified target could be a completely failed target or a target that failed initially, retried, then succeeded. If no target is given, then diagnose() simply lists the targets for which a error is retrievable. Together, functions failed() and diagnose() should eliminate the strict need for ordinary error messages printed to the console.

Usage

diagnose(target = NULL, character_only = FALSE, path = getwd(),
  search = TRUE, cache = drake::get_cache(path = path, search = search,
  verbose = verbose), verbose = TRUE)

Arguments

target

name of the target of the error to get. Can be a symbol if character_only is FALSE, must be a character if character_only is TRUE.

character_only

logical, whether target should be treated as a character or a symbol. Just like character.only in library().

path

Root directory of the drake project, or if search is TRUE, either the project root or a subdirectory of the project.

search

If TRUE, search parent directories to find the nearest drake cache. Otherwise, look in the current working directory only.

cache

optional drake cache. See codenew_cache(). If cache is supplied, the path and search arguments are ignored.

verbose

whether to print console messages

Value

Either a character vector of target names or an object of class "error".

See Also

failed, progress, readd, drake_plan, make

Examples

Run this code
# NOT RUN {
test_with_dir("Quarantine side effects.", {
diagnose() # List all the targets with recorded error logs.
# Define a function doomed to failure.
f <- function(){
  stop("unusual error")
}
# Create a workflow plan doomed to failure.
bad_plan <- drake_plan(my_target = f())
# Running the project should generate an error
# when trying to build 'my_target'.
try(make(bad_plan), silent = FALSE)
failed() # List the failed targets from the last make() (my_target).
# List targets that failed at one point or another
# over the course of the project (my_target).
# Drake keeps all the error logs.
diagnose()
# Get the error log, an object of class "error".
error <- diagnose(my_target)
str(error) # See what's inside the error log.
error$calls # View the traceback. (See the traceback() function).
})
# }

Run the code above in your browser using DataLab