Identify the file path where a target will be stored.
Source:R/tar_path_target.R
tar_path_target.Rd
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 atargets
pipeline. Having a default lets users run things withouttar_make()
, which helps peel back layers of code and troubleshoot bugs.- create_dir
Logical of length 1, whether to create
dirname(tar_path_target())
intar_path_target()
itself. This is useful if you are writing totar_path_target()
from inside astorage = "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. Iftar_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_described_as()
,
tar_envir()
,
tar_format_get()
,
tar_group()
,
tar_name()
,
tar_path()
,
tar_path_script()
,
tar_path_script_support()
,
tar_path_store()
,
tar_source()
,
tar_store()
,
tar_unblock_process()
Examples
tar_path_target()
#> [1] NA
tar_path_target(your_target)
#> [1] "_targets/objects/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)
})
}