Fixed return of list_depends to be a bit nicer for basic users but more detailed for those that need it (including this package)

This commit is contained in:
2022-06-16 13:35:21 +01:00
parent 2af88f907c
commit e460aefcb4
2 changed files with 23 additions and 4 deletions

View File

@@ -3,7 +3,7 @@
allPackages <- installed.packages() allPackages <- installed.packages()
allPackages <- as.data.frame(allPackages) allPackages <- as.data.frame(allPackages)
packages <- allPackages[allPackages$Package %in% packages,] packages <- allPackages[allPackages$Package %in% packages,]
packages <- allPackages[,c("Package", "Version", "Imports")] packages <- packages[,c("Package", "Version", "Imports")]
packages$Imports <- gsub(packages$Imports, pattern = "\n", replacement = " ") packages$Imports <- gsub(packages$Imports, pattern = "\n", replacement = " ")
packages$Imports <- strsplit(packages$Imports, ", ") packages$Imports <- strsplit(packages$Imports, ", ")
packages <- data.frame( packages <- data.frame(
@@ -31,9 +31,22 @@
#' packages. #' packages.
#' #'
#' @param packages A character vector of packages to find dependencies of #' @param packages A character vector of packages to find dependencies of
#' @param fullTree A boolean to select the return type (See details)
#'
#' The fullTree parameter can be used to provide only the packages and versions
#' required to re-build an environment of dependencies for the provided packages
#' or a table capable of being used to construct a full dependency tree.
#' #'
#' @return A data frame with the dependency tree #' @return A data frame with the dependency tree
#' @export #' @export
list_depends <- function(packages) { list_depends <- function(packages, fullTree = FALSE) {
.list_depends(packages, gen = 0) depends <- .list_depends(packages, gen = 0)
if (fullTree) {
return(depends)
}
depends <- depends[,c("package", "version")]
depends <- unique(depends)
depends <- depends[sort(depends$package, index.return = TRUE)$ix,]
row.names(depends) <- 1:nrow(depends)
return(depends)
} }

View File

@@ -5,10 +5,16 @@
\title{Recursively find all the installed dependencies of one or more installed \title{Recursively find all the installed dependencies of one or more installed
packages.} packages.}
\usage{ \usage{
list_depends(packages) list_depends(packages, fullTree = FALSE)
} }
\arguments{ \arguments{
\item{packages}{A character vector of packages to find dependencies of} \item{packages}{A character vector of packages to find dependencies of}
\item{fullTree}{A boolean to select the return type (See details)
The fullTree parameter can be used to provide only the packages and versions
required to re-build an environment of dependencies for the provided packages
or a table capable of being used to construct a full dependency tree.}
} }
\value{ \value{
A data frame with the dependency tree A data frame with the dependency tree