Skip to contents

Create the custom_format argument of tar_resources() to specify optional target settings for custom storage formats.

Usage

tar_resources_custom_format(
  envvars = targets::tar_option_get("resources")$custom_format$envvars
)

Arguments

envvars

Named character vector of environment variables. These environment variables are temporarily set just before each call to the storage methods you define in tar_format(). Specific methods like read can retrieve values from these environment variables using Sys.getenv(). Set envvars to NULL to omit entirely.

Value

Object of class "tar_resources_custom_format", to be supplied to the custom_format argument of tar_resources().

Details

tar_resources_custom_format() accepts target-specific settings to customize tar_format() storage formats.

Resources

Functions tar_target() and tar_option_set() each takes an optional resources argument to supply non-default settings of various optional backends for data storage and high-performance computing. The tar_resources() function is a helper to supply those settings in the correct manner.

In targets version 0.12.2 and above, resources are inherited one-by-one in nested fashion from tar_option_get("resources"). For example, suppose you set tar_option_set(resources = tar_resources(aws = my_aws)), where my_aws equals tar_resources_aws(bucket = "x", prefix = "y"). Then, tar_target(data, get_data() will have bucket "x" and prefix "y". In addition, if new_resources equals tar_resources(aws = tar_resources_aws(bucket = "z"))), then tar_target(data, get_data(), resources = new_resources) will use the new bucket "z", but it will still use the prefix "y" supplied through tar_option_set(). (In targets 0.12.1 and below, options like prefix do not carry over from tar_option_set() if you supply non-default resources to tar_target().)

Examples

# Somewhere in you target script file (usually _targets.R):
tar_target(
  name = target_name,
  command = data.frame(x = 1),
  format = tar_format(
    read = function(path) {
      readRDS(file = path)
    },
    write = function(object, path) {
      version <- as.integer(Sys.getenv("SERIALIZATION", unset = "2"))
      saveRDS(object = object, file = path, version = version)
    }
  ),
  resources = tar_resources(
    custom_format = tar_resources_custom_format(
      envvars = c(SERIALIZATION = "3")
    )
  )
)
#> <tar_stem> 
#>   name: target_name 
#>   description:  
#>   command:
#>     data.frame(x = 1) 
#>   format: format_custom&read=ZnVuY3Rpb24gKHBhdGgpIAp7CiAgICByZWFkUkRTKGZpbGUgPSBwYXRoKQp9&write=ZnVuY3Rpb24gKG9iamVjdCwgcGF0aCkgCnsKICAgIHZlcnNpb24gPC0gYXMuaW50ZWdlcihTeXMuZ2V0ZW52KCJTRVJJQUxJWkFUSU9OIiwgdW5zZXQgPSAiMiIpKQogICAgc2F2ZVJEUyhvYmplY3QgPSBvYmplY3QsIGZpbGUgPSBwYXRoLCB2ZXJzaW9uID0gdmVyc2lvbikKfQ&marshal=&unmarshal=&convert=&copy=&repository= 
#>   repository: local 
#>   iteration method: vector 
#>   error mode: stop 
#>   memory mode: persistent 
#>   storage mode: main 
#>   retrieval mode: main 
#>   deployment mode: worker 
#>   priority: 0 
#>   resources:
#>     custom_format: <environment> 
#>   cue:
#>     mode: thorough
#>     command: TRUE
#>     depend: TRUE
#>     format: TRUE
#>     repository: TRUE
#>     iteration: TRUE
#>     file: TRUE
#>     seed: TRUE 
#>   packages:
#>     targets
#>     stats
#>     graphics
#>     grDevices
#>     utils
#>     datasets
#>     methods
#>     base 
#>   library:
#>     NULL