8ebe60c3 |
.set_fake_tqdm <- "
def fake_tqdm(iterable=None, *args, **kwargs):
assert iterable is not None
yield from iterable
import SpatialDE
SpatialDE.base.tqdm = fake_tqdm
"
.set_real_tqdm <- "
import SpatialDE
import tqdm.autonotebook
SpatialDE.base.tqdm = tqdm.autonotebook.tqdm
"
#' Import SpatialDE
#'
#' This function loads the SpatialDE Python module and optionally
#' monkey-patches it to remove tqdm calls.
#'
|
5d897457 |
#' @param proc A process object generated by [`basilisk::basiliskStart()`]
|
8ebe60c3 |
#' @param patch_tqdm If `TRUE` patch calls to tqdm.
#' @return An R wrapper for the SpatialDE Python module.
#'
#' @importFrom reticulate import py_run_string
|
f2ee8aa8 |
#' @importFrom basilisk basiliskRun
|
5d897457 |
#'
#' @keywords internal
|
353bd6f2 |
.importPyModule <- function(proc, patch_tqdm) {
imp <- function(patch_tqdm, store) {
|
30fd9623 |
py_run_string("import warnings")
py_run_string("warnings.simplefilter(action='ignore', category=FutureWarning)")
|
9eab3712 |
mod <- import("SpatialDE")
|
353bd6f2 |
py_run_string(ifelse(patch_tqdm, .set_fake_tqdm, .set_real_tqdm))
|
5d897457 |
|
f2ee8aa8 |
store$spatialDE <- mod
invisible(NULL)
|
353bd6f2 |
}
basiliskRun(proc, imp, patch_tqdm, persist=TRUE)
|
8ebe60c3 |
}
|