Skip to content

Commit

Permalink
install_rosetta: add upgrade argument
Browse files Browse the repository at this point in the history
 - closes #10
  • Loading branch information
brownag committed Dec 28, 2023
1 parent 512f3f4 commit 752b026
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
8 changes: 6 additions & 2 deletions R/install_rosetta.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#' @param pip _logical_. Use `pip` for package installation? Default: `TRUE`. This is only relevant when Conda environments are used, as otherwise packages will be installed from the Conda repositories.
#' @param system _logical_. Default: `FALSE`. If `TRUE`, try installing to system (user) site library with `system()` and set reticulate to use system Python.
#' @param user _logical_. Default: `FALSE`. Pass `--user` flag. This should only be done if other installation methods fail and it is impossible to use a virtual environment.
#' @param upgrade _logical_. Install latest versions of Python packages by passing `--upgrade` flag? Default: `TRUE`.
#' @param arcpy_path Argument passed to `find_python()`. Path to ArcGIS Pro Python installation e.g. ``. Set as `NULL` (default) to prevent use of ArcGIS Pro instance.
#'
#' @details From `reticulate::py_install()`: On Linux and OS X the "virtualenv" method will be used by default ("conda" will be used if virtualenv isn't available). On Windows, the "conda" method is always used.
Expand All @@ -21,6 +22,7 @@ install_rosetta <- function(envname = NULL,
conda = "auto",
pip = TRUE,
user = FALSE,
upgrade = TRUE,
system = FALSE,
arcpy_path = getOption("rosettaPTF.arcpy_path")) {

Expand All @@ -39,10 +41,12 @@ install_rosetta <- function(envname = NULL,
if (isFALSE(system)) {
# get rosetta-soil (and numpy if needed)
try(reticulate::py_install("rosetta-soil", envname = envname, method = method,
conda = conda, pip = pip, pip_options = ifelse(user, "--user", "")), silent = TRUE)
conda = conda, pip = pip, pip_options = c(ifelse(user, "--user", character()),
ifelse(upgrade, "--upgrade", character()))), silent = TRUE)
} else {
reticulate::use_python(p, required = TRUE)
try(system(paste(shQuote(p), "-m pip install --upgrade --user rosetta-soil")), silent = TRUE)
try(system(paste(shQuote(p), "-m pip install", ifelse(upgrade, "--upgrade", ""),
ifelse(user, "--user", ""), "rosetta-soil")), silent = TRUE)
}

# load modules globally in package (prevents having to reload rosettaPTF library in session)
Expand Down
3 changes: 3 additions & 0 deletions man/install_rosetta.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 752b026

Please sign in to comment.