
Refresh sourcoise cache by executing sources selected
Source:R/sourcoise_refresh.R
sourcoise_refresh.Rd
All scripts (passed to sourcoise_refresh()
) are executed with logging enabled.
Usage
sourcoise_refresh(
what = NULL,
force_exec = TRUE,
unfreeze = TRUE,
quiet = FALSE,
init_fn = getOption("sourcoise.init_fn"),
root = NULL,
log = "INFO",
.progress = TRUE
)
Arguments
- what
(tibble) a tibble as generated by
sourcoise_status()
, possibly filtered, (defaut tosource_status()
)- force_exec
(boolean) (default
FALSE
) ifTRUE
code is executed, no matter what is cached- unfreeze
(boolean) (default
TRUE
) when possible, unfreeze and uncache .qmd files in a quarto project when data used by those .qmd has been refreshed- quiet
(boolean) (default
FALSE
) no message if TRUE- init_fn
(function) (default
NULL
) execute a function before sourcing to allow initialization- root
(default
NULL
) force root to be set, instead of letting the function finding the root, for advanced uses- log
(character) (default
"INFO"
) log levels as inlogger::log_threshold()
(c("OFF", "INFO", ...)), comes with a small performance cost- .progress
(boolean) (default
TRUE
) displays a progression bar based on previous execution timings
Value
a list of r scripts (characters) executed, with timing and success and a side effect on caches
Details
The function returns the list of script executed but its main effect is a side-effect as scripts are executed and caches updates accordingly. Note also that log files reflect execution and track possible errors. Because of logging the execution comes with a loss in performance, which is not an issue if scripts are long to execute.
It is possible to execute sourcoise_refresh()
without execution forcing (force_exec=FALSE
) or with it.
Forced execution means that the script is executed even if the cache is valid.
In the case of non forced execution, execution is triggered by other cache invalidation tests (change in source file, lapse or tacked files).
When scripts are linked to qmds (i.e. when run in a quarto project), it is possible to unfreeeze and uncache those qmds with the option unfreeze=TRUE
.
This allows to refresh the cahe and then render the qmds using the new data.
It is possible to pass to refresh a function that will be executed before every script. This allows to load packages and declare global variables that can be used in each script. If packages are loaded inside the script, then this is not needed.
Parameters registered ins sourcoise_status()
such as wd
or args
are used to execute the script.
See also
Other sourcoise:
sourcoise()
,
sourcoise_clear()
,
sourcoise_reset()
,
sourcoise_status()
Examples
dir <- tempdir()
fs::file_copy(
fs::path_package("sourcoise", "ipch", "prix_insee.R"),
dir,
overwrite = TRUE)
# Force execution (root is set explicitly here, it is normally deduced from project)
data <- sourcoise("prix_insee.R", root = dir, force_exec = TRUE)
# we then refresh all caches
sourcoise_refresh(root = dir)
#> ✔ prix_insee.r exectued in 0 s. for 14 kB of data
#> ℹ Total refresh in 0 seconds for 14 kB of data