Read the custom settings for the current project in the optional YAML configuration file.
Usage
tar_config_get(
name,
config = Sys.getenv("TAR_CONFIG", "_targets.yaml"),
project = Sys.getenv("TAR_PROJECT", "main")
)
Arguments
- name
Character of length 1, name of the specific configuration setting to retrieve.
- config
Character of length 1, file path of the YAML configuration file with
targets
project settings. Theconfig
argument specifies which YAML configuration file thattar_config_get()
reads from ortar_config_set()
writes to in a single function call. It does not globally change which configuration file is used in subsequent function calls. The default file path of the YAML file is always_targets.yaml
unless you set another default path using theTAR_CONFIG
environment variable, e.g.Sys.setenv(TAR_CONFIG = "custom.yaml")
. This also has the effect of temporarily modifying the default arguments to other functions such astar_make()
because the default arguments to those functions are controlled bytar_config_get()
.- project
Character of length 1, name of the current
targets
project. Thanks to theconfig
R package,targets
YAML configuration files can store multiple sets of configuration settings, with each set corresponding to its own project. Theproject
argument allows you to set or get a configuration setting for a specific project for a given call totar_config_set()
ortar_config_get()
. The default project is always called"main"
unless you set another default project using theTAR_PROJECT
environment variable, e.g.Sys.setenv(tar_project = "custom")
. This also has the effect of temporarily modifying the default arguments to other functions such astar_make()
because the default arguments to those functions are controlled bytar_config_get()
.
Value
The value of the configuration setting from
the YAML configuration file (default: _targets.yaml
)
or the default value if the setting is not available.
The data type of the return value depends on your choice
of name
.
Storage access
Several functions like tar_make()
, tar_read()
, tar_load()
,
tar_meta()
, and tar_progress()
read or modify
the local data store of the pipeline.
The local data store is in flux while a pipeline is running,
and depending on how distributed computing or cloud computing is set up,
not all targets can even reach it. So please do not call these
functions from inside a target as part of a running
pipeline. The only exception is literate programming
target factories in the tarchetypes
package such as tar_render()
and tar_quarto()
.
Configuration
For several key functions like tar_make()
, the
default values of arguments are controlled though
tar_config_get()
. tar_config_get()
retrieves data
from an optional YAML configuration file.
You can control the settings in the YAML
file programmatically with tar_config_set()
.
The default file path of this YAML file is _targets.yaml
, and you can
set another path globally using the TAR_CONFIG
environment variable. The YAML file can store configuration
settings for multiple projects, and you can globally
set the default project with the TAR_PROJECT
environment
variable.
The structure of the YAML file
follows rules similar to the config
R package, e.g.
projects can inherit settings from one another using the inherits
field.
Exceptions include:
There is no requirement to have a configuration named
"default"
.Other projects do not inherit from the default project` automatically.
Not all fields need values because
targets
already has defaults.
targets
does not actually invoke
the config
package. The implementation in targets
was written from scratch without viewing or copying any
part of the source code of config
.
See also
Other configuration:
tar_config_projects()
,
tar_config_set()
,
tar_config_unset()
,
tar_config_yaml()
,
tar_envvars()
,
tar_option_get()
,
tar_option_reset()
,
tar_option_set()
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)))
tar_config_get("store") # "_targets"
store_path <- tempfile()
tar_config_set(store = store_path)
tar_config_get("store") # Shows a temp file.
tar_make() # Writes to the custom data store identified in _targets.yaml.
tar_read(x) # tar_read() knows about _targets.yaml too.
file.exists("_targets") # FALSE
file.exists(store_path) # TRUE
})
}