R/tar_read.R

Defines functions tar_read

Documented in tar_read

#' @title Read a target's value from storage.
#' @export
#' @family data
#' @description Read a target's return value from its file in
#'   `_targets/objects/`. For dynamic files (i.e. `format = "file"`)
#'   the paths are returned.
#' @inheritSection tar_meta Storage access
#' @section Cloud target data versioning:
#'   Some buckets in Amazon S3 or Google Cloud Storage are "versioned",
#'   which means they track historical versions of each data object.
#'   If you use `targets` with cloud storage
#'   (<https://books.ropensci.org/targets/cloud-storage.html>)
#'   and versioning is turned on, then `targets` will record each
#'   version of each target in its metadata.
#'
#'   Functions like [tar_read()]
#'   and [tar_load()] load the version recorded in the local metadata,
#'   which may not be the same as the "current" version of the
#'   object in the bucket. Likewise, functions [tar_delete()]
#'   and [tar_destroy()] only remove
#'   the version ID of each target as recorded in the local
#'   metadata.
#'
#'   If you want to interact with the *latest* version of an object
#'   instead of the version ID recorded in the local metadata,
#'   then you will need to delete the object from the metadata.
#'
#'   1. Make sure your local copy of the metadata is current and
#'     up to date. You may need to run [tar_meta_download()] or
#'     [tar_meta_sync()] first.
#'   2. Run [tar_unversion()] to remove the recorded version IDs of
#'     your targets in the local metadata.
#'   3. With the version IDs gone from the local metadata,
#'     functions like [tar_read()] and [tar_destroy()] will use the
#'     *latest* version of each target data object.
#'   4. Optional: to back up the local metadata file with the version IDs
#'     deleted, use [tar_meta_upload()].
#' @return The target's return value from its file in
#'   `_targets/objects/`, or the paths to the custom files and directories
#'   if `format = "file"` was set.
#' @inheritParams tar_read_raw
#' @param name Symbol, name of the target to read.
#' @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 + 1)), ask = FALSE)
#' tar_make()
#' tar_read(x)
#' })
#' }
tar_read <- function(
  name,
  branches = NULL,
  meta = tar_meta(store = store),
  store = targets::tar_config_get("store")
) {
  tar_assert_allow_meta("tar_read", store)
  tar_assert_store(store = store)
  force(meta)
  name <- tar_deparse_language(substitute(name))
  tar_read_raw(
    name = name,
    branches = branches,
    meta = meta,
    store = store
  )
}
wlandau/targets documentation built on May 1, 2024, 7:27 p.m.