Even more stringsAsFactors catches

This commit is contained in:
2023-11-29 16:29:23 +00:00
parent f7cf31352b
commit 092bcdd866
7 changed files with 31 additions and 16 deletions

View File

@@ -1,7 +1,7 @@
Package: Rpacman Package: Rpacman
Type: Package Type: Package
Title: Very simple package manager for R Title: Very simple package manager for R
Version: 1.0.8 Version: 1.0.9
Date: 2022-05-31 Date: 2022-05-31
Authors@R: person("Craig", "Williams", email = "craig@avsdev.uk", role = c("aut", "cre")) Authors@R: person("Craig", "Williams", email = "craig@avsdev.uk", role = c("aut", "cre"))
URL: https://avsdev.uk/R/Rpacman URL: https://avsdev.uk/R/Rpacman

View File

@@ -66,7 +66,7 @@
))) )))
} }
do.call(rbind, fixedImports) do.call(rbind, c(fixedImports, stringsAsFactors = FALSE))
} }
.install_order <- function(dependsTree) { .install_order <- function(dependsTree) {
@@ -76,7 +76,7 @@
package <- package[1,c("package", "version", "generation")] package <- package[1,c("package", "version", "generation")]
return(package) return(package)
}) })
dependsPackages <- do.call(rbind, dependsPackages) dependsPackages <- do.call(rbind, c(dependsPackages, stringsAsFactors = FALSE))
dependsOrder <- sort(dependsPackages$generation, index.return = T, decreasing = T)$ix dependsOrder <- sort(dependsPackages$generation, index.return = T, decreasing = T)$ix
dependsOrder <- dependsPackages[dependsOrder,] dependsOrder <- dependsPackages[dependsOrder,]
@@ -172,7 +172,7 @@ compile_imports <- function(custom_sources = empty_sources(), installOpts = list
# Cancelled # Cancelled
return(invisible(NULL)) return(invisible(NULL))
} }
customImports <- rbind(customImports, extraImports) customImports <- rbind(customImports, extraImports, stringsAsFactors = FALSE)
} }
coreDeps <- dependsSources[dependsSources$in_core,] coreDeps <- dependsSources[dependsSources$in_core,]

View File

@@ -7,12 +7,12 @@
archive <- lapply(archive, function(pkg) { archive <- lapply(archive, function(pkg) {
packageVersions <- gsub("^([^/]+)/[^_]+_(.+).tar.gz", "\\1%%\\2", rownames(pkg)) packageVersions <- gsub("^([^/]+)/[^_]+_(.+).tar.gz", "\\1%%\\2", rownames(pkg))
packageVersions <- strsplit(packageVersions, "%%") packageVersions <- strsplit(packageVersions, "%%")
packageVersions <- do.call(rbind, packageVersions) packageVersions <- do.call(rbind, c(packageVersions, stringsAsFactors = FALSE))
pkg[,c("package","version")] <- packageVersions pkg[,c("package","version")] <- packageVersions
sortOrder <- sort(pkg$version, index.return = TRUE)$ix sortOrder <- sort(pkg$version, index.return = TRUE)$ix
pkg[sortOrder,c("package", "version")] pkg[sortOrder,c("package", "version")]
}) })
archive <- do.call(rbind, archive) archive <- do.call(rbind, c(archive, stringsAsFactors = FALSE))
rownames(archive) <- 1:nrow(archive) rownames(archive) <- 1:nrow(archive)
write_con <- gzfile(fn, "wb") write_con <- gzfile(fn, "wb")
saveRDS(archive, write_con) saveRDS(archive, write_con)

View File

@@ -15,7 +15,7 @@
con <- gzfile(fn, "rb") con <- gzfile(fn, "rb")
on.exit(close(con), add = TRUE) on.exit(close(con), add = TRUE)
packages <- readRDS(con) packages <- readRDS(con)
packages <- as.data.frame(packages) packages <- as.data.frame(packages, stringsAsFactors = FALSE)
packages <- packages[is.na(packages$Path),] packages <- packages[is.na(packages$Path),]
packages <- packages[,c("Package", "Version")] packages <- packages[,c("Package", "Version")]
colnames(packages) <- c("package", "version") colnames(packages) <- c("package", "version")

View File

@@ -30,11 +30,12 @@ install_package_source <- function(packageSource, installOpts = list(Ncpus = par
repos = getOption("repos"), type = getOption("pkgType")) repos = getOption("repos"), type = getOption("pkgType"))
allPackages <- utils::installed.packages() allPackages <- utils::installed.packages()
allPackages <- as.data.frame(allPackages) allPackages <- as.data.frame(allPackages, stringsAsFactors = FALSE)
allPackages <- allPackages[allPackages$Package %in% package,] allPackages <- allPackages[allPackages$Package %in% package,]
package <- data.frame( package <- data.frame(
package = allPackages$Package, package = allPackages$Package,
version = allPackages$Version version = allPackages$Version,
stringsAsFactors = FALSE
) )
return(package) return(package)

View File

@@ -1,7 +1,10 @@
# Requires activate.R # Requires activate.R
.install_if_missing <- function(packages, installOpts, lockVersion = TRUE, parallel = FALSE) { .install_if_missing <- function(packages, installOpts, lockVersion = TRUE, parallel = FALSE) {
installedPackages <- as.data.frame(utils::installed.packages()[,c("Package","Version")], stringsAsFactors = FALSE) installedPackages <- as.data.frame(
utils::installed.packages()[,c("Package","Version")],
stringsAsFactors = FALSE
)
if (lockVersion) { if (lockVersion) {
packageMatch <- merge( packageMatch <- merge(
packages, packages,
@@ -74,11 +77,22 @@ restore <- function(totalIsolation = FALSE, installOpts = list(Ncpus = parallel:
if (is.null(requiredPackages$custom)) { if (is.null(requiredPackages$custom)) {
requiredPackages$custom <- list() requiredPackages$custom <- list()
} }
simplePackages <- as.data.frame(apply(rbind( simplePackages <- as.data.frame(
do.call(rbind, requiredPackages$direct), apply(
do.call(rbind, requiredPackages$indirect) rbind(
), 2, unlist), stringsAsFactors = FALSE) do.call(rbind, c(requiredPackages$direct, stringsAsFactors = FALSE)),
customPackages <- as.data.frame(do.call(rbind, requiredPackages$custom), stringsAsFactors = FALSE) do.call(rbind, c(requiredPackages$indirect, stringsAsFactors = FALSE)),
stringsAsFactors = FALSE
),
2,
unlist
),
stringsAsFactors = FALSE
)
customPackages <- as.data.frame(
do.call(rbind, c(requiredPackages$custom, stringsAsFactors = FALSE)),
stringsAsFactors = FALSE
)
# corePackages <- as.data.frame(apply(do.call(rbind, lastSnapshot$packages$core), 2, unlist)) # corePackages <- as.data.frame(apply(do.call(rbind, lastSnapshot$packages$core), 2, unlist))

View File

@@ -14,7 +14,7 @@ snapshot_create <- function(installOpts = list(Ncpus = parallel::detectCores()))
lastSnapshot <- snapshot_latest() lastSnapshot <- snapshot_latest()
customSources <- empty_sources() customSources <- empty_sources()
if (!is.null(lastSnapshot) && "custom" %in% names(lastSnapshot$packages)) { if (!is.null(lastSnapshot) && "custom" %in% names(lastSnapshot$packages)) {
customSources <- rbind(customSources, lastSnapshot$packages$custom) customSources <- rbind(customSources, lastSnapshot$packages$custom, stringsAsFactors = FALSE)
} }
packages <- compile_imports(customSources, installOpts) packages <- compile_imports(customSources, installOpts)
names(packages) <- c("core", "direct", "indirect", "custom", "install_order") names(packages) <- c("core", "direct", "indirect", "custom", "install_order")