MCPcopy Index your code
hub / github.com/pre-commit/pre-commit / install_environment

Function install_environment

pre_commit/languages/r.py:190–242  ·  view source on GitHub ↗
(
        prefix: Prefix,
        version: str,
        additional_dependencies: Sequence[str],
)

Source from the content-addressed store, hash-verified

188
189
190def install_environment(
191 prefix: Prefix,
192 version: str,
193 additional_dependencies: Sequence[str],
194) -> None:
195 lang_base.assert_version_default('r', version)
196
197 env_dir = lang_base.environment_dir(prefix, ENVIRONMENT_DIR, version)
198 os.makedirs(env_dir, exist_ok=True)
199 shutil.copy(prefix.path('renv.lock'), env_dir)
200 shutil.copytree(prefix.path('renv'), os.path.join(env_dir, 'renv'))
201
202 r_code_inst_environment = f"""\
203 prefix_dir <- {prefix.prefix_dir!r}
204 options(
205 repos = c(CRAN = "https://cran.rstudio.com"),
206 renv.consent = TRUE
207 )
208 source("renv/activate.R")
209 renv::restore()
210 activate_statement <- paste0(
211 'suppressWarnings({{',
212 'old <- setwd("', getwd(), '"); ',
213 'source("renv/activate.R"); ',
214 'setwd(old); ',
215 'renv::load("', getwd(), '");}})'
216 )
217 writeLines(activate_statement, 'activate.R')
218 is_package <- tryCatch(
219 {{
220 path_desc <- file.path(prefix_dir, 'DESCRIPTION')
221 suppressWarnings(desc <- read.dcf(path_desc))
222 "Package" %in% colnames(desc)
223 }},
224 error = function(...) FALSE
225 )
226 if (is_package) {{
227 renv::install(prefix_dir)
228 }}
229 """
230 _execute_vanilla_r(
231 r_code_inst_environment,
232 prefix=prefix, version=version, cwd=env_dir,
233 )
234
235 _write_current_r_version(envdir=env_dir, prefix=prefix, version=version)
236 if additional_dependencies:
237 r_code_inst_add = 'renv::install(commandArgs(trailingOnly = TRUE))'
238 _execute_r_in_renv(
239 code=r_code_inst_add, prefix=prefix, version=version,
240 args=additional_dependencies,
241 cwd=env_dir,
242 )
243
244
245def _inline_r_setup(code: str) -> str:

Callers

nothing calls this directly

Calls 4

_execute_vanilla_rFunction · 0.85
_write_current_r_versionFunction · 0.85
_execute_r_in_renvFunction · 0.85
pathMethod · 0.80

Tested by

no test coverage detected