{woodendesc} strives to provide an unified API to query any R repository for the following data:
The package tries to cache as much as possible and reuse existing cache wherever possible to minimize internet usage. Many repositories (CRAN, Bioconductor, R-universe, and local libraries) have custom implementations of their handlers to make use of additional possibilities they present (e.g. previous versions on CRAN or old releases of Bioconductor).
# Install from CRAN
install.packages("woodendesc")
# Install the development version from GitHub:
# install.packages("devtools")
devtools::install_github("turtletopia/woodendesc")
Each repository has its dedicated functions for listing available packages, package version, and package dependencies.
A list of available packages is returned as a character vector. An example call returning a list of CRAN packages:
library(woodendesc)
# Too many packages to list them all
all_cran_pkgs <- wood_cran_packages()
head(all_cran_pkgs, 10)
#> [1] "A3" "AalenJohansen" "AATtools" "ABACUS"
#> [5] "abbreviate" "abbyyR" "abc" "abc.data"
#> [9] "ABC.RAP" "ABCanalysis"
An available package version is returned as a single code. An example call checking the current version of Biobase package on Bioconductor:
wood_bioc_version("Biobase")
#> [1] "2.58.0"
Dependencies of a package are returned as a data frame with the same set of columns for all calls. An example call for locally installed digest package (dependency of woodendesc):
wood_local_dependencies("digest")
#> <dependencies>
#> Depends: R (>= 3.3.0)
#> Imports: utils
#> Suggests: tinytest
#> Suggests: simplermarkdown
Note that some repositories store more than just one version of a
package (e.g. CRAN and Github). These cases can be distinguished by
pluralized _versions
function name component and they return all
version codes instead; a character vector of any length. This is how it
works for gglgbtq on Github:
wood_github_versions("gglgbtq", "turtletopia")
#> [1] "0.1.1" "0.1.0"
If a single version code is needed, there’s a counterpart that selects the latest version only. The current version of aurrera on Github is:
wood_github_latest("aurrera", "turtletopia")
#> [1] "0.1.0"
Last, but not least, there are three functions for searching through
multiple repositories and collecting the results. Read the documentation
for details on how to specify repos
parameter.
wood_packages()
collects available packages from the specified
repositories and returns unique elements:
wood_packages(repos = c("core", "https://colinfay.me"))
#> [1] "attempt" "base" "compiler" "craneur"
#> [5] "datasets" "devaddins" "dockerfiler" "fryingpane"
#> [9] "graphics" "grDevices" "grid" "jekyllthat"
#> [13] "languagelayeR" "methods" "parallel" "proustr"
#> [17] "rgeoapi" "rpinterest" "splines" "stats"
#> [21] "stats4" "tcltk" "tidystringdist" "tools"
#> [25] "utils"
wood_versions()
returns all package versions available on at least one
of the specified repositories; may take more than one package:
wood_versions(
c("aurrera", "woodendesc"),
repos = c("local#all", "runiverse@turtletopia", "cran")
)
#> $aurrera
#> [1] "0.1.0"
#>
#> $woodendesc
#> [1] "0.1.0"
wood_dependencies()
returns a list of package dependencies, a data
frame for each package specified; the first working repository is used
for each package, as the dependencies are not supposed to be summable:
wood_dependencies(
c("versionsort", "gglgbtq"),
repos = c("local#all", "runiverse@turtletopia", "cran")
)
#> <woodendesc dependency list [2]>
#> <versionsort dependencies>
#> Suggests: covr
#> Suggests: spelling
#> Suggests: testthat (>= 3.0.0)
#>
#> <gglgbtq dependencies>
#> Imports: ggplot2
#> Imports: graphics
#> Imports: grDevices
#> Suggests: knitr
#> Suggests: rmarkdown
#> Suggests: spelling
#> Suggests: testthat (>= 3.0.0)
And if you ever need to clear cache, simply call:
wood_clear_cache()
I believe in equal rights and treatment for everybody, regardless of their sexuality, gender identity, skin tone, nationality, and other features beyond human control. Thus, I do not allow woodendesc to be used in any project that promotes hate based on the aforementioned factors.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.