tar_path_target: Identify the file path where a target will be stored.

View source: R/tar_path_target.R

tar_path_targetR Documentation

Identify the file path where a target will be stored.

Description

Identify the file path where a target will be stored after the target finishes running in the pipeline.

Usage

tar_path_target(
  name = NULL,
  default = NA_character_,
  create_dir = FALSE,
  store = targets::tar_config_get("store")
)

Arguments

name

Symbol, name of a target. If NULL, tar_path_target() returns the path of the target currently running in a pipeline.

default

Character, value to return if tar_path_target() 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.

create_dir

Logical of length 1, whether to create dirname(tar_path_target()) in tar_path_target() itself. This is useful if you are writing to tar_path_target() from inside a storage = "none" target and need the parent directory of the file to exist.

store

Character of length 1, path to the data store if tar_path_target() is called outside a running pipeline. If tar_path_target() is called inside a running pipeline, this argument is ignored and actual the path to the running pipeline's data store is used instead.

Value

Character, file path of the return value of the target. If not called from inside a running target, tar_path_target(name = your_target) just returns ⁠_targets/objects/your_target⁠, the file path where your_target will be saved unless format is equal to "file" or any of the supported cloud-based storage formats.

For non-cloud storage formats, if you call tar_path_target() with no arguments while target x is running, the name argument defaults to the name of the running target, so tar_path_target() returns ⁠_targets/objects/x⁠.

For cloud-backed formats, tar_path_target() returns the path to the staging file in ⁠_targets/scratch/⁠. That way, even if you select a cloud repository (e.g. tar_target(..., repository = "aws", storage = "none")) then you can still manually write to tar_path_target(create_dir = TRUE) and the targets package will automatically hash it and upload it to the AWS S3 bucket. This does not apply to format = "file", where you would never need storage = "none" anyway.

See Also

Other utilities: tar_active(), tar_backoff(), tar_call(), tar_cancel(), tar_definition(), tar_envir(), tar_group(), tar_name(), tar_path_script_support(), tar_path_script(), tar_path_store(), tar_path(), tar_seed(), tar_source(), tar_store()

Examples

tar_path_target()
tar_path_target(your_target)
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_path, tar_path_target()), ask = FALSE)
tar_make()
tar_read(returns_path)
})
}

targets documentation built on Oct. 12, 2023, 5:07 p.m.