From 20f511d98c6523b7ce6dff01ca1e30d516849a13 Mon Sep 17 00:00:00 2001 From: Noam Ross Date: Sun, 24 Dec 2023 09:20:20 -0500 Subject: [PATCH] working --- .Rprofile | 119 +- .env_user | 1 + .github/workflows/make-targets.yml | 20 +- .gitignore | 289 ++- .renvignore | 16 + CODE_OF_CONDUCT.md | 126 ++ LICENSE.md | 2 +- R/_ehaproj_utils.R | 72 + R/summarize_quantities.R | 6 +- README-template.Rmd | 80 - README.Rmd | 85 + README.md | 90 +- ...template.Rproj => _ehaproj-template_.Rproj | 10 +- _targets.R | 68 +- _targets.yaml | 1 + _targets/meta/meta | 58 +- _targets/meta/process | 6 +- _targets/meta/progress | 14 +- _targets_config.R | 2 + out.prof | 52 + outputs/README.Rmd | 4 +- outputs/README.md | 20 + packages.R | 20 +- renv.lock | 1957 ++--------------- renv/settings.dcf | 2 +- renv/settings.json | 23 + reports/report-template.html | 518 +++++ use-template.R | 91 - 28 files changed, 1621 insertions(+), 2131 deletions(-) create mode 100644 .env_user create mode 100644 .renvignore create mode 100644 CODE_OF_CONDUCT.md create mode 100644 R/_ehaproj_utils.R delete mode 100644 README-template.Rmd create mode 100644 README.Rmd rename container-template.Rproj => _ehaproj-template_.Rproj (55%) create mode 100644 _targets.yaml create mode 100644 _targets_config.R create mode 100644 out.prof create mode 100644 outputs/README.md create mode 100644 renv/settings.json create mode 100644 reports/report-template.html delete mode 100644 use-template.R diff --git a/.Rprofile b/.Rprofile index 3b774ef..4c7eabb 100644 --- a/.Rprofile +++ b/.Rprofile @@ -1,46 +1,87 @@ -# Use the local user's .Rprofile when interactive. -# Good for keeping local preferences and shortcuts, but not always reproducible. -local({ - user_rprof <- Sys.getenv("R_PROFILE_USER", file.path(Sys.getenv("HOME"), ".Rprofile")) - if(interactive() && file.exists(user_rprof)) source(user_rprof) -}) +# The .Rprofile file is loaded at the start of every R session and can be used +# to set common options and settings. As {targets} starts a new session for each +# target, it should be limited to options and avoid loading packages or other +# heavy tasks. Messages and diagnostics should be limited to interactive sessions. + +# ---- Function definitions ---------------------------------------------------- +local({ # Wrapping in `local()` avoids side effects or cluttering the environment + + load_env <- function( + env_files = list.files(all.files = TRUE, pattern = "^\\.env.*"), + verbose = TRUE) { + for (f in env_files) { + tryCatch( + readRenviron(f), + error = function(e) { + if (verbose) { + if (isTRUE(suppressWarnings(readBin(f, "character", 2))[2] == "GITCRYPT")) { + message("`", f, "` is encrypted, not loading. Run `git-crypt unlock`.") + } else { + message("Error reading ", f, ": ", e$message, ". Not loading.") + } + } + }) + } + } + + # ---- Interactive-only ------------------------------------------------------ + if (interactive()) { + # Source the user's .Rprofile if it exists, but other options will clobber it + user_rprof <- Sys.getenv("R_PROFILE_USER", normalizePath("~/.Rprofile", mustWork = FALSE)) + if (file.exists(user_rprof) && nzchar("USE_CAPSULE")) { + source(user_rprof) + } + load_env(verbose = TRUE) + + options( + renv.config.startup.quiet = FALSE, + renv.config.synchronized.check = TRUE, + renv.config.dependency.errors = "reported" + ) + + if (!nzchar("USE_CAPSULE") && requireNamespace("capsule", quietly = TRUE)) { + capsule::whinge() + } + -# Load .env environment variables -if (file.exists(".env")) { - if(isTRUE(suppressWarnings(readBin(".env", "character", 2))[2] == "GITCRYPT")) { - message(".env file is encrypted, not reading. Use git-crypt unlock to decrypt") + } else { - try(readRenviron(".env")) + # ---- Non-interactive only ------------------------------------------------ + + load_env(verbose = FALSE) + options( + renv.config.startup.quiet = TRUE, + renv.config.synchronized.check = FALSE, # Avoid the check in every sub-process + renv.config.dependency.errors = "ignored" + ) } -} + + # ---- All sessions ---------------------------------------------------------- + options( + renv.config.install.verbose = TRUE # See what is happening when packages are installed + ) + + if (requireNamespace("renv", quietly = TRUE)) { + renv::settings$ignored.packages(c("ehaproj", "tflow", "fnmate")) + } + + if (!nzchar("USE_CAPSULE")) { + source("renv/activate.R") + load_env(verbose = FALSE) # Load again because renv can clobber env vars + } + + +}) -options( - repos = c(RSPM = "https://packagemanager.rstudio.com/all/latest", - CRAN = "https://cran.rstudio.com/"), - renv.config.auto.snapshot = TRUE, ## Attempt to keep renv.lock updated automatically - tidyverse.quiet = TRUE -) -# Since RSPM does not provide Mac binaries, always install packages from CRAN -# on mac or windows, even if renv.lock specifies they came from RSPM -if (Sys.info()[["sysname"]] %in% c("Darwin", "Windows")) { - options(renv.config.repos.override = c( - CRAN = "https://cran.rstudio.com/", - INLA = "https://inla.r-inla-download.org/R/testing")) -} else if (Sys.info()[["sysname"]] == "Linux") { - options(renv.config.repos.override = c( - RSPM = "https://packagemanager.rstudio.com/all/latest", - INLA = "https://inla.r-inla-download.org/R/testing")) +# ---- Startup message --------------------------------------------------------- +if (interactive() && Sys.getenv("RSTUDIO") == "1") { + setHook("rstudio.sessionInit", function(newSession) { + if (newSession) { + cat("\014") + cat("\033[38;5;196m▃▃▃▃▃▃\033[39m\033[38;5;214m▃▃▃▃▃▃\033[39m\033[38;5;226m▃▃▃▃▃▃\033[39m\033[38;5;34m▃▃▃▃▃▃\033[39m\033[38;5;27m▃▃▃▃▃▃\033[39m\033[38;5;91m▃▃▃▃▃▃\033[39m") + cat("\n") + } + }, action = "append") } -# Load the local library -if(file.exists("renv/activate.R")) source("renv/activate.R") - -# If project packages have conflicts define them here, we start with common ones -if(requireNamespace("conflicted", quietly = TRUE)) { - conflicted::conflict_prefer("filter", "dplyr", quiet = TRUE) - conflicted::conflict_prefer("count", "dplyr", quiet = TRUE) - conflicted::conflict_prefer("select", "dplyr", quiet = TRUE) - conflicted::conflict_prefer("set_names", "magrittr", quiet = TRUE) - conflicted::conflict_prefer("View", "utils", quiet = TRUE) -} diff --git a/.env_user b/.env_user new file mode 100644 index 0000000..7368377 --- /dev/null +++ b/.env_user @@ -0,0 +1 @@ +USE_TARGETS=1 diff --git a/.github/workflows/make-targets.yml b/.github/workflows/make-targets.yml index ad7ba04..a118249 100644 --- a/.github/workflows/make-targets.yml +++ b/.github/workflows/make-targets.yml @@ -8,30 +8,30 @@ on: # Alternately, for jobs such as updating dashboard, you can set a regular schedule #schedule: # - cron: "0 8 * * *" - + jobs: container-workflow-template: runs-on: ubuntu-latest # Run on GitHub Actions runner #runs-on: [self-hosted, linux, x64, onprem-aegypti] # Run the workflow on EHA aegypti runner (permissions required) #runs-on: [self-hosted, linux, x64, onprem-prospero] # Run the workflow on EHA prospero runner (permissions required) container: - image: rocker/verse:4.2.1 - + image: rocker/r-ver:4.2.1 + steps: - + steps: # update to: git config --global --add safe.directory /__w/your-repo/your-repo - name: update permissions for container based workflows run: git config --global --add safe.directory /__w/container-template/container-template - + - uses: actions/checkout@v2 - + - name: Install system dependencies run: | apt-get update && apt-get install -y --no-install-recommends \ libcurl4-openssl-dev \ libssl-dev - + - name: Install packages from renv.lock (with cache) if: ${{ !env.ACT }} ## Doesn't work locally with ACT uses: r-lib/actions/setup-renv@v2 @@ -43,14 +43,14 @@ jobs: run: | renv::restore() shell: Rscript {0} - + - name: Run targets workflow run: | targets::tar_make() shell: Rscript {0} - + - name: On failure, launch a temporary interactive debugging session uses: mxschmitt/action-tmate@v3 if: ${{ failure() }} timeout-minutes: 15 - + diff --git a/.gitignore b/.gitignore index 1b7f58a..a6f6b2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,83 +1,133 @@ ### Reproducible / {targets} ignores ### + +# In general, do not keep the objects files _targets/objects -_cache -_targets.yaml + + +# HTML previews of README README.html +#### General .gitignore stuff for various project types #### +# Created by https://www.toptal.com/developers/gitignore/api/r,c++,macos,python,microsoftoffice,windows,linux +# Edit at https://www.toptal.com/developers/gitignore?templates=r,c++,macos,python,microsoftoffice,windows,linux ### R ### # History files -*Rhistory .Rhistory .Rapp.history -.Rproj.user -.RData -.Ruserdata + # Session Data files +.RData +.RDataTmp + # User-specific files +.Ruserdata + # Example code in package build process *-Ex.R + # Output files from R CMD build /*.tar.gz + # Output files from R CMD check /*.Rcheck/ + # RStudio files .Rproj.user/ -# produced vignettes -vignettes/*.html -vignettes/*.pdf + +# produced vignettes - may be used in ehaproj +# vignettes/*.html +# vignettes/*.pdf + # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 .httr-oauth + # knitr and R markdown default cache directories *_cache/ /cache/ + # Temporary files created by R markdown *.utf8.md *.knit.md + +# R Environment Variables +.Renviron + +# pkgdown site +docs/ + +# translation temp files +po/*~ + +# RStudio Connect folder +rsconnect/ + ### R.Bookdown Stack ### # R package: bookdown caching files /*_files/ -# End of https://www.toptal.com/developers/gitignore/api/r,c++,macos,microsoftoffice + ### C++ ### # Prerequisites *.d + # Compiled Object files *.slo *.lo *.o *.obj + # Precompiled Headers *.gch *.pch -# Linker files -*.ilk -# Debugger Files -*.pdb + # Compiled Dynamic libraries *.so *.dylib *.dll + # Fortran module files *.mod *.smod + # Compiled Static libraries *.lai *.la *.a *.lib + # Executables *.exe *.out *.app + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + ### macOS ### # General .DS_Store .AppleDouble .LSOverride + # Icon must end with two \r Icon + + # Thumbnails ._* + # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd @@ -86,27 +136,234 @@ Icon .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent + # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + ### MicrosoftOffice ### *.tmp + # Word temporary ~$*.doc* + # Word Auto Backup File Backup of *.doc* + # Excel temporary ~$*.xls* + # Excel Backup File *.xlk + # PowerPoint temporary ~$*.ppt* + # Visio autosave temporary files *.~vsd* +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json -# Created by https://www.toptal.com/developers/gitignore/api/r,c++,macos,microsoftoffice -# Edit at https://www.toptal.com/developers/gitignore?templates=r,c++,macos,microsoftoffice +# End of https://www.toptal.com/developers/gitignore/api/r,c++,macos,python,microsoftoffice,windows,linux diff --git a/.renvignore b/.renvignore new file mode 100644 index 0000000..1515769 --- /dev/null +++ b/.renvignore @@ -0,0 +1,16 @@ +# This file instructs {renv} to only look in certain files and directories +# when scanning for project dependencies. This speeds up startup by preventing +# scanning of large directories. +* +!packages.[rR] +!*.[rR] +!*.[rR]md +!R/*.[rR] +!_targets*.[rR] +!vignettes/*.[rR] +!vignettes/*.[rR]md +!reports/*.[rR] +!reports/*.[rR]md +!outputs/*.[rR] +!outputs/*.[rR]md + diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..22f6c2e --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,126 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at _coc_email_. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][https://github.com/mozilla/inclusion]. + +For answers to common questions about this code of conduct, see the FAQ at +. Translations are available at . + +[homepage]: https://www.contributor-covenant.org diff --git a/LICENSE.md b/LICENSE.md index 356d877..b91aa0b 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -143,7 +143,7 @@ express Statement of Purpose. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. - + --- Attribution 4.0 International diff --git a/R/_ehaproj_utils.R b/R/_ehaproj_utils.R new file mode 100644 index 0000000..0d97777 --- /dev/null +++ b/R/_ehaproj_utils.R @@ -0,0 +1,72 @@ +# These are utility functions commonly used in the project. These may migrate +# to a separate package {ehautils?} in the future +load_env <- function( + env_files = list.files(all.files = TRUE, pattern = "^\\.env.*"), + verbose = TRUE) { + for (f in env_files) { + tryCatch( + readRenviron(f), + error = function(e) { + if (verbose) { + if (isTRUE(suppressWarnings(readBin(f, "character", 2))[2] == "GITCRYPT")) { + message("`", f, "` is encrypted, not loading. Run `git-crypt unlock`.") + } else { + message("Error reading ", f, ": ", e$message, ". Not loading.") + } + } + }) + } +} + +# 'Generate a lockfile from dependencies. +#' +# 'Note that this obeys the `.renvignore` file because it uses renv::dependencies underneath. +#' @param async If TRUE, run in a separate process. +capshot_all <- function(files = NULL, async = TRUE) { + if (is.null(files)) { + files <- list.files( + path = c(".", "R","reports", "vignettes", "outputs"), + pattern = "\\.(R|r|Rmd|rmd)$", + full.names = TRUE) + } + if (async) { + out <- mirai::mirai(capsule::capshot(files), .args = list(files = files)) + } else { + out <- capsule::capshot(files) + } + invisible(out) +} + +#' Collect all targets and lists of targets in the environment +#' +#' A convenience function to run at the end of a _targets.R file. +#' @param env The environment to search for targets. Defaults to the parent environment. +#' @param add_list_names If TRUE, lists of targets such as those made with +#' [targets::tar_plan()] will be redefined in the environment so they can +#' be used to refer to all targets on the list, such as `tar_make(list_name)`. +#' Note this does not work with `tar_load()` or other functions that do not run _targets.R. +all_targets <- function(env = parent.env(environment()), add_list_names = TRUE) { + + # Function to determine if an object is a target, or a list of only targets + rfn <- function(obj) inherits(obj, "tar_target") || (is.list(obj) && all(vapply(obj, rfn, logical(1)))) + # Get the names everything in the environment (e.g. sourced in the _targets file) + objs <- ls(env) + out <- list() + + for (o in objs) { + obj <- get(o, envir = env) # Get each top-level object in turn + if (rfn(obj)) { # For targets and lists of targets + out[[length(out) + 1]] <- obj # Add them to the output + + # If the object is a list of targets, add a vector of those names to the environment + # So that one can call `tar_make(list_name)` to make all the targets in that list + if (add_list_names && is.list(obj)) { + target_names <- vapply(obj, \(x) x$settings$name, character(1)) + assign(o, target_names, envir = env) + } + } + } + return(out) +} + + diff --git a/R/summarize_quantities.R b/R/summarize_quantities.R index 915455c..6674e55 100644 --- a/R/summarize_quantities.R +++ b/R/summarize_quantities.R @@ -1,9 +1,9 @@ #' A function to extract quantities from the workflow -#' +#' #' This is a useful step to have in the workflow, extracting and summarizing #' any numbers that will be used in an output or final manuscript. -#' -#' Values in the list this function outputs are printed in outputs/README.Rmd +#' +#' Values in the list this function outputs are printed in outputs/README.Rmd summarize_quantities <- function() { list( value = 1 diff --git a/README-template.Rmd b/README-template.Rmd deleted file mode 100644 index 0a73874..0000000 --- a/README-template.Rmd +++ /dev/null @@ -1,80 +0,0 @@ ---- -output: github_document ---- - - - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -# template-placeholder - - - -[![License (for code): MIT](https://img.shields.io/badge/License (for code)-MIT-green.svg)](https://opensource.org/licenses/MIT) -[![License: CC0-1.0](https://img.shields.io/badge/License (for data)-CC0_1.0-lightgrey.svg)](http://creativecommons.org/publicdomain/zero/1.0/) -[![License: CC-BY-4.0](https://img.shields.io/badge/License (for text)-CC_BY_4.0-blue.svg)](http://creativecommons.org/publicdomain/zero/1.0/) - - - - -This repository contains data and R code which are supplements to: - -_Paper Title_, by -Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), -Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), -and Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), -(20XX) - -Please cite that paper, and/or the Zenodo data reference () -when using data or referring to this study. - -## Repository Structure and Reproducibility - - - -- `data/` contains data from the study - and a data dictionary describing all variables. -- `R/` contains functions used in this analysis. -- `reports/` contains literate code for R Markdown reports generated in the analysis -- `outputs/` contains compiled reports and figures. -- This project uses the [{targets}](https://wlandau.github.io/targets-manual/) - framework to organize build steps for analysis pipeline. The steps are - defined in the `_targets.R` file and the workflow can be executed by running - `run.R` via `source("run.R")` in your R terminal or `Rscript run.R` in - your system shell. The schematic figure below summarizes the steps. (The figure is generated using - `mermaid.js` syntax and should display as a graph on GitHub. It can also - be viewed by pasting the code into .) - -```{r, echo=FALSE, message = FALSE, results='asis'} -tar_load(plan_targets) -mer <- targets::tar_mermaid(targets_only = TRUE, outdated = FALSE, - legend = FALSE, color = FALSE, - exclude = c("readme", ends_with("_targets"))) -cat( - "```mermaid", - mer[1], - #'Objects([""Objects""]) --- Functions>""Functions""]', - 'subgraph Project Workflow', - mer[3:length(mer)], - 'linkStyle 0 stroke-width:0px;', - "```", - sep = "\n" -) -``` - -- This project requires `r R.version$version.string`. This project uses the [{renv}](https://rstudio.github.io/renv/) framework to - record R package dependencies and versions. Packages and versions used are recorded in - `renv.lock` and code used to manage dependencies is in `renv/` and other files - in the root project directory. On starting an R session in the working directory, run `renv::restore()` - to install R package dependencies. - - - diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..dcdafff --- /dev/null +++ b/README.Rmd @@ -0,0 +1,85 @@ +--- +output: github_document +--- + + + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +# _mkrproj_ + + + +[![License (for code): MIT](https://img.shields.io/badge/License (for code)-MIT-green.svg)](https://opensource.org/licenses/MIT) +[![License (for data): CC0-1.0](https://img.shields.io/badge/License (for data)-CC0_1.0-lightgrey.svg)](http://creativecommons.org/publicdomain/zero/1.0/) +[![License (for text): CC-BY-4.0](https://img.shields.io/badge/License (for text)-CC_BY_4.0-blue.svg)](http://creativecommons.org/publicdomain/zero/1.0/) + + + + +This repository contains data and R code which are supplements to: + +_Paper Title_, by +Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +and Author [![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +(20XX) + +Please cite that paper, when referring to this work. Please also cite +the permanent archive of repository (Zenodo reference () +when reusing or referring directly to data and code. + +## Repository Structure and Reproducibility + + + +- `data/` contains data from the study +and a data dictionary describing all variables. +- `R/` contains functions used in this analysis. +- `reports/` contains R Markdown/Quarto reports generated in the analysis +- `outputs/` contains figures and other outputs +- This project uses the [{targets}](https://wlandau.github.io/targets-manual/) +framework to organize build steps for analysis pipeline. The steps are +defined in the `_targets.R` file and the workflow can be executed by running +`run.R` via `source("run.R")` in your R terminal or `Rscript run.R` in +your system shell. The schematic figure below summarizes the steps. (The figure is generated using +`mermaid.js` syntax and should display as a graph on GitHub. It can also +be viewed by pasting the code into .) + + +```{r, echo=FALSE, message = FALSE, results='asis'} +# This block renders the {targets} workflow as a graph in mermaid.js form, +# which is displayed by default on GitHub. +mer <- targets::tar_mermaid(targets_only = TRUE, outdated = FALSE, + callr_function = NULL, envir = new.env(), reporter = "silent", + legend = FALSE, color = FALSE) +cat( + "```{mermaid}", + mer[1], + "subgraph Project Workflow", + mer[3:length(mer)], + "linkStyle 0 stroke-width:0px;", + "```", + sep = "\n" +) +``` + +- This project was built with `r R.version$version.string`. This project uses the [{renv}](https://rstudio.github.io/renv/) framework to +record R package dependencies and versions. Packages and versions used are recorded in +`renv.lock` and code used to manage dependencies is in `renv/` and other files +in the root project directory. On starting an R session in the working directory, run `renv::restore()` +to install R package dependencies. + + +## Code of Conduct + +Please note that this project is released with a [Contributor Code of +Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By +contributing to this project, you agree to abide by its terms. diff --git a/README.md b/README.md index 9ec628a..8a3dcba 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,83 @@ -# EHA Project Template + -[![Project Status: WIP – Initial development is in progress, but there -has not yet been a stable, usable release suitable for the -public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip) -[![Lifecycle: -experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) -[![container-workflow-template](https://github.com/ecohealthalliance/container-template/actions/workflows/container-workflow-template.yml/badge.svg)](https://github.com/ecohealthalliance/container-template/actions/workflows/container-workflow-template.yml) +# *mkrproj* -This is repository contains a template for EcoHealth Alliance R code projects. + + -## Quickstart +[![License (for code): +MIT](https://img.shields.io/badge/License%20(for%20code)-MIT-green.svg)](https://opensource.org/licenses/MIT) +[![License (for data): +CC0-1.0](https://img.shields.io/badge/License%20(for%20data)-CC0_1.0-lightgrey.svg)](http://creativecommons.org/publicdomain/zero/1.0/) +[![License (for text): +CC-BY-4.0](https://img.shields.io/badge/License%20(for%20text)-CC_BY_4.0-blue.svg)](http://creativecommons.org/publicdomain/zero/1.0/) -Start a new project by running this in the R console: + -```r -source("https://raw.githubusercontent.com/ecohealthalliance/container-template/download-script/use-template.R") +This repository contains data and R code which are supplements to: -``` +*Paper Title*, by Author +[![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +Author +[![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +and Author +[![](https://orcid.org/sites/default/files/images/orcid_16x16.png)](https://orcid.org/AUTHOR_ORCID_ID), +(20XX) + +Please cite that paper, when referring to this work. Please also cite +the permanent archive of repository (Zenodo reference +() when reusing or referring directly +to data and code. + +## Repository Structure and Reproducibility -or this in the shell: + -```bash - Rscript -e "$(curl -s https://raw.githubusercontent.com/ecohealthalliance/container-template/download-script/use-template.R)" +- `data/` contains data from the study and a data dictionary describing + all variables. +- `R/` contains functions used in this analysis. +- `reports/` contains R Markdown/Quarto reports generated in the + analysis +- `outputs/` contains figures and other outputs +- This project uses the + [{targets}](https://wlandau.github.io/targets-manual/) framework to + organize build steps for analysis pipeline. The steps are defined in + the `_targets.R` file and the workflow can be executed by running + `run.R` via `source("run.R")` in your R terminal or `Rscript run.R` in + your system shell. The schematic figure below summarizes the steps. + (The figure is generated using `mermaid.js` syntax and should display + as a graph on GitHub. It can also be viewed by pasting the code into + .) + + + +``` mermaid +graph LR +subgraph Project Workflow + direction LR + x835f456db5951df5(["all_plot_files"]):::skipped --> xbda0fd67e19f73bc(["outputs_readme"]):::built + x07b56d1fbca21cf3(["summarized_quantities"]):::skipped --> xbda0fd67e19f73bc(["outputs_readme"]):::built + x9e3eef4eeb77d655(["report_template"]):::skipped --> x9e3eef4eeb77d655(["report_template"]):::skipped + end +linkStyle 0 stroke-width:0px; ``` +- This project was built with R version 4.2.2 (2022-10-31). This project + uses the [{renv}](https://rstudio.github.io/renv/) framework to record + R package dependencies and versions. Packages and versions used are + recorded in `renv.lock` and code used to manage dependencies is in + `renv/` and other files in the root project directory. On starting an + R session in the working directory, run `renv::restore()` to install R + package dependencies. + +## Code of Conduct -This is a template repository of a containerised R workflow built on the -`targets` framework, made portable using `renv`, and ran manually or -automatically using `GitHub Actions`. +Please note that this project is released with a [Contributor Code of +Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). +By contributing to this project, you agree to abide by its terms. diff --git a/container-template.Rproj b/_ehaproj-template_.Rproj similarity index 55% rename from container-template.Rproj rename to _ehaproj-template_.Rproj index 23cf08c..06fe5dd 100644 --- a/container-template.Rproj +++ b/_ehaproj-template_.Rproj @@ -1,8 +1,8 @@ Version: 1.0 -RestoreWorkspace: Default -SaveWorkspace: Default -AlwaysSaveHistory: Default +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Yes EnableCodeIndexing: Yes UseSpacesForTab: Yes @@ -13,3 +13,7 @@ RnwWeave: knitr LaTeX: pdfLaTeX BuildType: Makefile + +UseNativePipeOperator: Yes + +QuitChildProcessesOnExit: Yes diff --git a/_targets.R b/_targets.R index eba6c8f..fcf7af9 100644 --- a/_targets.R +++ b/_targets.R @@ -1,64 +1,18 @@ -# ---- Load packages ---- -# Only list packages here that you expect to use in most of your targets or -# in this script. Packages used only within certain targets are best -# referred to with `::` syntax, or in the `tar_target(..., packages = "pkgname")` -# argument. `_targets_packages.R` lists packages used interactively but not -# in your workflow -library(targets) -library(tarchetypes) -library(tidyverse) - -# Load all the functions in the `R/` directory -targets::tar_source(files = "R") - - -# ---- Options ---- -# By default we use the `qs` format for faster read/write of targets -tar_option_set( - resources = tar_resources( - qs = tar_resources_qs(preset = "fast")), - format = "qs" -) +# ---- Setup ---- +# Load all the functions in the `R/` directory, packages, and other `_targets_*.R files` +targets::tar_source(c("R", "packages.R", list.files(".", "^_targets_.*\\.(r|R)$"))) +# When using capsule record the packages used +if (nzchar(Sys.getenv("USE_CAPSULE"))) capshot_all() # ---- Targets Plan ---- - -data_targets <- tar_plan( -) - -analysis_targets <- tar_plan( -) - -plot_targets <- tar_plan( -) - -plot_file_targets <- tar_plan( -) - -output_targets <- tar_plan( - # Make the plan a target so README updates when it is changed - tar_file(plan_targets, "_targets.R"), - tar_render(readme, path = "README.Rmd"), - - # Render any reports - tar_render(report_template, - path = "reports/report-template.Rmd"), - - # Extract useful numbers from elsewhere in the workflow - summarized_quantities = summarize_quantities(), - - # Make a README in the outputs/ directory to view all figures - tar_target_raw("all_plot_files", parse(text = paste0("c(", paste(map_chr(plot_file_targets, \(x) x$settings$name), collapse = ", "), ")"))), - tar_render(outputs_readme, path = "outputs/README.Rmd", params = all_plot_files), +# Define your targets here. They can be standalone or +reports <- tar_plan( + tar_file(targets_files, list.files(".", "^_targets.*\\.(r|R)$"), repository = "local"), + tar_render(readme, path = "README.Rmd", params = list(file = targets_files)) ) -# ---- Final targets list ---- -list( - data_targets, - analysis_targets, - plot_targets, - plot_file_targets, - output_targets -) \ No newline at end of file +# ---- Wrapup ---- +all_targets() diff --git a/_targets.yaml b/_targets.yaml new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/_targets.yaml @@ -0,0 +1 @@ +[] diff --git a/_targets/meta/meta b/_targets/meta/meta index 7b9751a..c80b694 100644 --- a/_targets/meta/meta +++ b/_targets/meta/meta @@ -1,21 +1,37 @@ -name|type|data|command|depend|seed|path|time|size|bytes|format|iteration|parent|children|seconds|warnings|error -nutrition_data|stem|36484e5d640109ef|40bcd732128fc1e9|c3b5fc02cdc369c1|486710335||t18971.8540559645s|530fcc6c1135ce94|4636|rds|vector|||0.003|| -nutrition_data_clean|stem|fcdb61ef4163e12b|97d63c8c0690699b|5271fbe4f971d373|619464695||t18971.8543018447s|1f9a34c88f53017d|3660|rds|vector|||0.008|| -wasting_recode|stem|f8b3c8d8d3e4d763|14c678b6d4e245c1|4f4b95be330aba76|-583764828||t18971.8543022514s|d778b2938f7c0a1c|3829|rds|vector|||0.008|| -wasting_prevalence|stem|df47aac55a4bb5b4|a46b60513c27342f|9f94f956ece37e75|1641230917||t18971.8543025244s|7e02ad38317bcde4|55|rds|vector|||0.002|| -example_report|stem|a7668a73a2ad8b03|1584abca98a6e5e3|62c71f59fc6c5161|2101924986|outputs/example_report.html*reports/example_report.Rmd|t18971.8543359439s|a52a608bd529e525|658292|file|vector|||2.952|| -data_input_targets|object|79954645aca38b3f|||||||||||||| -aws_s3_upload_single|function|4e608cbdf9601669|||||||||||||| -deploy_targets|object|5ffe6afca81d9674|||||||||||||| -outputs_targets|object|1eb1bc8d77111ded|||||||||||||| -report_targets|object|1aa074405a606dd5|||||||||||||| -.Random.seed|object|1b1cee2bbe12e2a8|||||||||||||| -data_processing_targets|object|776a77df6dc4dd9d|||||||||||||| -f|object|d90c53d1fb02a168|||||||||||||| -analysis_targets|object|65f66dd440d4be55|||||||||||||| -user_rprof|object|7bbb6f5be9480d28|||||||||||||| -check_anthro_data|function|e4ad3b81d74a5a0b|||||||||||||| -aws_s3_upload|function|bd98cadba22dcfb5|||||||||||||| -nutrition_data_issues|stem|fcdb61ef4163e12b|8a0a799f0163e3f1|aa1b4eeff73015e8|2087054520||t18971.8685645934s|1f9a34c88f53017d|3660|rds|vector|||11.103|| -nutrition_data_check|stem|13ce0feee3fba6df|3e72916aaeb63cd4|aa1b4eeff73015e8|1660387930||t18971.8687078215s|f5557e92d97c04fe|12878|rds|vector|||12.347|| -uploaded_report|stem|3a3e37142b7f1586|015cbeba36d527e0|988c5ab80bc20118|-1668699945||t18971.8687098074s|6efc4bfe9d27bd5a|46|rds|vector|||0.111|AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION environment variables must all be set to upload to AWS, probably in the .env file| +name|type|data|command|depend|seed|path|time|size|bytes|format|repository|iteration|parent|children|seconds|warnings|error +.Random.seed|object|ab8e2e8e4c27830d||||||||||||||| +all_plot_files|stem|2bb339e1379dddd2|ca8c3bdf2c491bee|a3dad144c40657ed|1683656025||t19329.9916882437s|7c851447131a82e3|30|qs|local|vector|||0.001|| +all_targets|function|e9487b92ac623649||||||||||||||| +analysis_targets|object|1eb1bc8d77111ded||||||||||||||| +aws_s3_upload|function|bd98cadba22dcfb5||||||||||||||| +aws_s3_upload_single|function|4e608cbdf9601669||||||||||||||| +capshot_all|function|2ea1fd539a071263||||||||||||||| +check_anthro_data|function|e4ad3b81d74a5a0b||||||||||||||| +data_input_targets|object|79954645aca38b3f||||||||||||||| +data_processing_targets|object|776a77df6dc4dd9d||||||||||||||| +data_targets|object|1eb1bc8d77111ded||||||||||||||| +deploy_targets|object|5ffe6afca81d9674||||||||||||||| +example_report|stem|a7668a73a2ad8b03|1584abca98a6e5e3|62c71f59fc6c5161|2101924986|outputs/example_report.html*reports/example_report.Rmd|t18971.8543359439s|a52a608bd529e525|658292|file|local|vector|||2.952|| +f|object|d90c53d1fb02a168||||||||||||||| +load_env|function|1c2e26bafb5e47ea||||||||||||||| +nutrition_data|stem|36484e5d640109ef|40bcd732128fc1e9|c3b5fc02cdc369c1|486710335||t18971.8540559645s|530fcc6c1135ce94|4636|rds|local|vector|||0.003|| +nutrition_data_check|stem|13ce0feee3fba6df|3e72916aaeb63cd4|aa1b4eeff73015e8|1660387930||t18971.8687078215s|f5557e92d97c04fe|12878|rds|local|vector|||12.347|| +nutrition_data_clean|stem|fcdb61ef4163e12b|97d63c8c0690699b|5271fbe4f971d373|619464695||t18971.8543018447s|1f9a34c88f53017d|3660|rds|local|vector|||0.008|| +nutrition_data_issues|stem|fcdb61ef4163e12b|8a0a799f0163e3f1|aa1b4eeff73015e8|2087054520||t18971.8685645934s|1f9a34c88f53017d|3660|rds|local|vector|||11.103|| +output_targets|object|0639094eddc12c5e||||||||||||||| +outputs_readme|stem|fade0974d3b7f881|ce3f46f973418351|e2e7d586901917cb|1833669539|outputs/README.md*outputs/README.Rmd|t19329.9921662877s|1abb80ea62812447|882|file|local|vector|||0.351|| +outputs_targets|object|1eb1bc8d77111ded||||||||||||||| +plan_targets|stem|0e931659ee93554e|98a51661f84e14d7|ef46db3751d8e999|156766894|_targets.R|t19329.9181494298s|2d214356c7805c7d|1303|file|local|vector|||0.002|| +plot_file_targets|object|1eb1bc8d77111ded||||||||||||||| +plot_targets|object|1eb1bc8d77111ded||||||||||||||| +readme|stem|67f7ab2479b128c0|0b842316a70fe6a6|98bc9877517e834c|1531186241|README.md*README.Rmd|t19329.9921605414s||7022|file|local|vector|||0.671||argument store is missing, with no default +report_targets|object|1aa074405a606dd5||||||||||||||| +report_template|stem|c3300f9df29bb96b|06025d7e3c4d4fba|4745aa592080ea1d|1893399057|reports/report-template.html*reports/report-template.Rmd|t19329.9916862992s|8199b02380702315|627745|file|local|vector|||0.554|| +reports|object|ed1e049979bf9746||||||||||||||| +summarize_quantities|function|7ed4ac9e5b167ff5||||||||||||||| +summarized_quantities|stem|c2ad3a635bd6d615|20b006d6588ac8c6|b28570204b38972e|1600875836||t19329.9916881045s|a96c250e4b19e03e|54|qs|local|vector|||0.001|| +targets_files|stem|592c830f6d6c3f48|7b7c8a4068e91959|ef46db3751d8e999|1123494618|_targets_config.R*_targets.R|t19714.6765819725s|51f7ad908b9e68b5|629|file|local|vector|||0.001|| +uploaded_report|stem|3a3e37142b7f1586|015cbeba36d527e0|988c5ab80bc20118|-1668699945||t18971.8687098074s|6efc4bfe9d27bd5a|46|rds|local|vector|||0.111|AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION environment variables must all be set to upload to AWS, probably in the .env file| +user_rprof|object|7bbb6f5be9480d28||||||||||||||| +wasting_prevalence|stem|df47aac55a4bb5b4|a46b60513c27342f|9f94f956ece37e75|1641230917||t18971.8543025244s|7e02ad38317bcde4|55|rds|local|vector|||0.002|| +wasting_recode|stem|f8b3c8d8d3e4d763|14c678b6d4e245c1|4f4b95be330aba76|-583764828||t18971.8543022514s|d778b2938f7c0a1c|3829|rds|local|vector|||0.008|| diff --git a/_targets/meta/process b/_targets/meta/process index 10e5595..94ec75f 100644 --- a/_targets/meta/process +++ b/_targets/meta/process @@ -1,4 +1,4 @@ name|value -pid|41320 -version_r|4.1.2 -version_targets|0.9.0 +pid|91157 +version_r|4.3.2 +version_targets|1.3.2.9002 diff --git a/_targets/meta/progress b/_targets/meta/progress index d1f4f17..3c5e210 100644 --- a/_targets/meta/progress +++ b/_targets/meta/progress @@ -1,12 +1,4 @@ name|type|parent|branches|progress -nutrition_data|stem|nutrition_data|0|skipped -nutrition_data_issues|stem|nutrition_data_issues|0|started -nutrition_data_issues|stem|nutrition_data_issues|0|built -nutrition_data_check|stem|nutrition_data_check|0|started -nutrition_data_check|stem|nutrition_data_check|0|built -nutrition_data_clean|stem|nutrition_data_clean|0|skipped -wasting_recode|stem|wasting_recode|0|skipped -wasting_prevalence|stem|wasting_prevalence|0|skipped -example_report|stem|example_report|0|skipped -uploaded_report|stem|uploaded_report|0|started -uploaded_report|stem|uploaded_report|0|built +targets_files|stem|targets_files|0|skipped +readme|stem|readme|0|started +readme|stem|readme|0|errored diff --git a/_targets_config.R b/_targets_config.R new file mode 100644 index 0000000..a720bde --- /dev/null +++ b/_targets_config.R @@ -0,0 +1,2 @@ +# Something +tar_config_set() diff --git a/out.prof b/out.prof new file mode 100644 index 0000000..29acc15 --- /dev/null +++ b/out.prof @@ -0,0 +1,52 @@ +sample.interval=20000 +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +"lengths" "unique" "simplify2array" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "eval" "eval" "eval_one" "bench::mark" +"gsub" "FUN" "lapply" "profmem::readRprofmem" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "parse_allocations" "eval_one" "bench::mark" +"stopifnot" "srcfilecopy" "parse" "eval" "FUN" "lapply" "profmem::readRprofmem" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "parse_allocations" "eval_one" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +"isTRUE" "Sys.getenv" "renv_config_get" "config$filebacked.cache" "filebacked" "renv_settings_read" "FUN" "lapply" "renv_settings_get" "renv_settings_set" "" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_light" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "sapply" "unname" "get_theme_names" "%in%" "stop_if_theme_not_valid" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +".Call" ".rs.getThemes" "lapply" "" "do.call" "callFun" "rstudioapi::getThemes" "lapply" "unlist" "Filter" "get_theme_info" "warn_theme_style_mismatch" "get_or_check_theme" "set_theme_light_dark" "rsthemes::set_theme_dark" "eval" "eval" "withVisible" "source" "eval" "eval" "eval" "eval" "eval.parent" "local" "eval" "eval" "withVisible" "source" "doTryCatch" "tryCatchOne" "tryCatchList" "tryCatch" "force" "with_gcinfo" "bench::mark" +"paste0" "tibble_opt" "getOption" "get_pillar_option_width" "get_width_print" "tbl_format_setup" "format_tbl" "format.tbl" "format" "writeLines" "print_tbl" "print.tbl" "" +"check_dots_empty" "new_pillar_component" "pillar_component" "new_pillar" "pillar_from_shaft" "pillar" "ctl_new_pillar.tbl" "ctl_new_pillar" "ctl_new_pillar_list.tbl" "ctl_new_pillar_list" "new_data_frame_pillar_list" "ctl_new_pillar_list.tbl" "ctl_new_pillar_list" "do_emit_pillars" "do_emit_focus_pillars" "emit_pillars" "do_emit_tiers" "ctl_colonnade" "tbl_format_setup.tbl" "tbl_format_setup_dispatch" "tbl_format_setup" "format_tbl" "format.tbl" "format" "writeLines" "print_tbl" "print.tbl" "" +"...elt" "stopifnot" "new_pillar_shaft" "new_pillar_shaft_simple" "pillar_shaft.list" "pillar_shaft" "%||%" "get_min_width" "pillar_from_shaft" "pillar" "ctl_new_pillar.tbl" "ctl_new_pillar" "ctl_new_pillar_list.tbl" "ctl_new_pillar_list" "new_data_frame_pillar_list" "ctl_new_pillar_list.tbl" "ctl_new_pillar_list" "do_emit_pillars" "do_emit_focus_pillars" "emit_pillars" "do_emit_tiers" "ctl_colonnade" "tbl_format_setup.tbl" "tbl_format_setup_dispatch" "tbl_format_setup" "format_tbl" "format.tbl" "format" "writeLines" "print_tbl" "print.tbl" "" +"which" "style_hint" "style_star" "format.pillar_rif_type" "format" "FUN" "lapply" "map" "pillar_format_parts_2" "cb$on_end_tier" "emit_pillars" "do_emit_tiers" "ctl_colonnade" "tbl_format_setup.tbl" "tbl_format_setup_dispatch" "tbl_format_setup" "format_tbl" "format.tbl" "format" "writeLines" "print_tbl" "print.tbl" "" diff --git a/outputs/README.Rmd b/outputs/README.Rmd index 063d1c2..f6fa518 100644 --- a/outputs/README.Rmd +++ b/outputs/README.Rmd @@ -1,7 +1,7 @@ --- -output: +output: github_document: - html_preview: true + html_preview: false --- diff --git a/outputs/README.md b/outputs/README.md new file mode 100644 index 0000000..1f74d96 --- /dev/null +++ b/outputs/README.md @@ -0,0 +1,20 @@ + +# Summarized Quantities + +
+ +Here we extract all quantities reported in the text of the paper. Click +to expand + + +| Quantity | Value | +|:---------|------:| +| value | 1 | + +
+ +# Figures + +## + +![]() diff --git a/packages.R b/packages.R index e0a03fa..30c2fae 100644 --- a/packages.R +++ b/packages.R @@ -6,11 +6,17 @@ # You need to load for most of your workflow. Use `::` in your functions # For packages that you only call a few functions from, or attach packages # to specific targets using the `tar_target(..., packages = "PACKAGE")` argument. -# -# Packages that don't need to be loaded but need to still be installed should be -# listed in the `_targets_package.R` file. +suppressPackageStartupMessages({ + + library(targets) + library(tarchetypes) + library(dplyr) # Avoid loading tidyverse by default, instead use individual packages + library(purrr) + # library(paws.storage) # Load paws.storage rather than the whole paws package + + + }) + -library(targets) -library(tarchetypes) -library(tidyverse) -#library(tidymodels) \ No newline at end of file +# Check what is already used by your project by running +# names(jsonlite::read_json(lockfile)$Packages) \ No newline at end of file diff --git a/renv.lock b/renv.lock index 2eac815..069cdf0 100644 --- a/renv.lock +++ b/renv.lock @@ -1,1969 +1,392 @@ { "R": { - "Version": "4.2.2", + "Version": "4.3.2", "Repositories": [ - { - "Name": "RSPM", - "URL": "https://packagemanager.rstudio.com/all/latest" - }, { "Name": "CRAN", - "URL": "https://cran.rstudio.com" + "URL": "https://cloud.r-project.org" } ] }, "Packages": { - "BH": { - "Package": "BH", - "Version": "1.78.0-0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4e348572ffcaa2fb1e610e7a941f6f3a", - "Requirements": [] - }, - "DBI": { - "Package": "DBI", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b2866e62bab9378c3cc9476a1954226b", - "Requirements": [] - }, - "MASS": { - "Package": "MASS", - "Version": "7.3-58.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "762e1804143a332333c054759f89a706", - "Requirements": [] - }, - "Matrix": { - "Package": "Matrix", - "Version": "1.5-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4006dffe49958d2dd591c17e61e60591", - "Requirements": [ - "lattice" - ] - }, "R6": { + "Source": "Repository", "Package": "R6", "Version": "2.5.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "470851b6d5d0ac559e9d01bb352b4021", - "Requirements": [] - }, - "RApiSerialize": { - "Package": "RApiSerialize", - "Version": "0.1.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "d8a79c95f553670ceffbd190815bbfce", - "Requirements": [] - }, - "RColorBrewer": { - "Package": "RColorBrewer", - "Version": "1.1-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "45f0398006e83a5b10b72a90663d8d8c", - "Requirements": [] - }, - "Rcpp": { - "Package": "Rcpp", - "Version": "1.0.9", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e9c08b94391e9f3f97355841229124f2", - "Requirements": [] - }, - "RcppParallel": { - "Package": "RcppParallel", - "Version": "5.1.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f3e94e34ff656a7c8336ce01207bc2b8", - "Requirements": [] - }, - "V8": { - "Package": "V8", - "Version": "4.2.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ebee37dadb0a8f5086663825d2c33076", - "Requirements": [ - "Rcpp", - "curl", - "jsonlite" - ] - }, - "anytime": { - "Package": "anytime", - "Version": "0.3.9", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "74a64813f17b492da9c6afda6b128e3d", - "Requirements": [ - "BH", - "Rcpp" - ] - }, - "askpass": { - "Package": "askpass", - "Version": "1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e8a22846fff485f0be3770c2da758713", - "Requirements": [ - "sys" - ] - }, - "assertthat": { - "Package": "assertthat", - "Version": "0.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "50c838a310445e954bc13f26f26a6ecf", - "Requirements": [] - }, - "atcursor": { - "Package": "atcursor", - "Version": "0.0.2", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "milesmcbain", - "RemoteRepo": "atcursor", - "RemoteRef": "main", - "RemoteSha": "52445666e612650cfa787814c3b195eaa1012ab8", - "Hash": "76819a2c49cf4b16ae1e40e89bd92709", - "Requirements": [ - "rstudioapi" - ] + "Repository": "CRAN" }, "backports": { + "Source": "Repository", "Package": "backports", "Version": "1.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c39fbec8a30d23e721980b8afb31984c", - "Requirements": [] + "Repository": "CRAN" }, "base64enc": { + "Source": "Repository", "Package": "base64enc", "Version": "0.1-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "543776ae6848fde2f48ff3816d0628bc", - "Requirements": [] + "Repository": "CRAN" }, "base64url": { + "Source": "Repository", "Package": "base64url", "Version": "1.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "0c54cf3a08cc0e550fbd64ad33166143", - "Requirements": [ - "backports" - ] - }, - "bigD": { - "Package": "bigD", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "93637e906f3fe962413912c956eb44db", - "Requirements": [] - }, - "bit": { - "Package": "bit", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "d242abec29412ce988848d0294b208fd", - "Requirements": [] - }, - "bit64": { - "Package": "bit64", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "9fe98599ca456d6552421db0d6772d8f", - "Requirements": [ - "bit" - ] - }, - "bitops": { - "Package": "bitops", - "Version": "1.0-7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b7d8d8ee39869c18d8846a184dd8a1af", - "Requirements": [] - }, - "blob": { - "Package": "blob", - "Version": "1.2.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "10d231579bc9c06ab1c320618808d4ff", - "Requirements": [ - "rlang", - "vctrs" - ] - }, - "broom": { - "Package": "broom", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c90ff735b7812b60f067a3f7a3b4de63", - "Requirements": [ - "backports", - "dplyr", - "ellipsis", - "generics", - "ggplot2", - "glue", - "purrr", - "rlang", - "stringr", - "tibble", - "tidyr" - ] - }, - "bs4Dash": { - "Package": "bs4Dash", - "Version": "2.1.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "cca14515876425caa963eb95f52e4564", - "Requirements": [ - "bslib", - "fresh", - "htmltools", - "httpuv", - "httr", - "jsonlite", - "lifecycle", - "shiny", - "waiter" - ] + "Repository": "CRAN" }, "bslib": { - "Package": "bslib", - "Version": "0.4.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "89a0cd0c45161e3bd1c1e74a2d65e516", - "Requirements": [ - "cachem", - "htmltools", - "jquerylib", - "jsonlite", - "memoise", - "rlang", - "sass" - ] + "Package": "bslib", + "Version": "0.6.1", + "Repository": "CRAN" }, "cachem": { - "Package": "cachem", - "Version": "1.0.6", "Source": "Repository", - "Repository": "CRAN", - "Hash": "648c5b3d71e6a37e3043617489a0a0e9", - "Requirements": [ - "fastmap", - "rlang" - ] + "Package": "cachem", + "Version": "1.0.8", + "Repository": "CRAN" }, "callr": { + "Source": "Repository", "Package": "callr", "Version": "3.7.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "9b2191ede20fa29828139b9900922e51", - "Requirements": [ - "R6", - "processx" - ] + "Repository": "CRAN" }, - "cellranger": { - "Package": "cellranger", - "Version": "1.1.0", + "capsule": { "Source": "Repository", - "Repository": "CRAN", - "Hash": "f61dbaec772ccd2e17705c1e872e9e7c", - "Requirements": [ - "rematch", - "tibble" - ] + "Package": "capsule", + "Version": "0.4.2", + "Repository": "https://milesmcbain.r-universe.dev", + "RemoteUrl": "https://github.com/milesmcbain/capsule", + "RemoteRef": "master", + "RemoteSha": "401d0c98adc329c17d0bb129069c9ec220a26646" }, "cli": { - "Package": "cli", - "Version": "3.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "0d297d01734d2bcea40197bd4971a764", - "Requirements": [] - }, - "clipr": { - "Package": "clipr", - "Version": "0.8.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3f038e5ac7f41d4ac41ce658c85e3042", - "Requirements": [] - }, - "clustermq": { - "Package": "clustermq", - "Version": "0.8.95.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a9cbe19a941c943dd57b0a602b500437", - "Requirements": [ - "R6", - "Rcpp", - "narray", - "progress", - "purrr" - ] - }, - "codetools": { - "Package": "codetools", - "Version": "0.2-18", "Source": "Repository", - "Repository": "CRAN", - "Hash": "019388fc48e48b3da0d3a76ff94608a8", - "Requirements": [] - }, - "colorspace": { - "Package": "colorspace", - "Version": "2.0-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "bb4341986bc8b914f0f0acf2e4a3f2f7", - "Requirements": [] - }, - "commonmark": { - "Package": "commonmark", - "Version": "1.8.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b6e3e947d1d7ebf3d2bdcea1bde63fe7", - "Requirements": [] - }, - "conflicted": { - "Package": "conflicted", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c6bb5e1ef58f2f1c84f238f55bd2e56a", - "Requirements": [ - "memoise", - "rlang" - ] + "Package": "cli", + "Version": "3.6.1", + "Repository": "CRAN" }, "cpp11": { - "Package": "cpp11", - "Version": "0.4.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ed588261931ee3be2c700d22e94a29ab", - "Requirements": [] - }, - "crayon": { - "Package": "crayon", - "Version": "1.5.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e8a1e41acf02548751f45c718d55aa6a", - "Requirements": [] - }, - "credentials": { - "Package": "credentials", - "Version": "1.3.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "93762d0a34d78e6a025efdbfb5c6bb41", - "Requirements": [ - "askpass", - "curl", - "jsonlite", - "openssl", - "sys" - ] - }, - "curl": { - "Package": "curl", - "Version": "4.3.3", "Source": "Repository", - "Repository": "CRAN", - "Hash": "0eb86baa62f06e8855258fa5a8048667", - "Requirements": [] + "Package": "cpp11", + "Version": "0.4.6", + "Repository": "CRAN" }, "data.table": { - "Package": "data.table", - "Version": "1.14.6", "Source": "Repository", - "Repository": "CRAN", - "Hash": "aecef50008ea7b57c76f1cb5c127fb02", - "Requirements": [] - }, - "dbplyr": { - "Package": "dbplyr", - "Version": "2.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f6c7eb9617e4d2a86bb7182fff99c805", - "Requirements": [ - "DBI", - "R6", - "assertthat", - "blob", - "cli", - "dplyr", - "glue", - "lifecycle", - "magrittr", - "pillar", - "purrr", - "rlang", - "tibble", - "tidyselect", - "vctrs", - "withr" - ] - }, - "desc": { - "Package": "desc", - "Version": "1.4.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6b9602c7ebbe87101a9c8edb6e8b6d21", - "Requirements": [ - "R6", - "cli", - "rprojroot" - ] + "Package": "data.table", + "Version": "1.14.8", + "Repository": "CRAN" }, "digest": { - "Package": "digest", - "Version": "0.6.30", "Source": "Repository", - "Repository": "CRAN", - "Hash": "bf1cd206a5d170d132ef75c7537b9bdb", - "Requirements": [] + "Package": "digest", + "Version": "0.6.33", + "Repository": "CRAN" }, "dplyr": { - "Package": "dplyr", - "Version": "1.0.10", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "539412282059f7f0c07295723d23f987", - "Requirements": [ - "R6", - "generics", - "glue", - "lifecycle", - "magrittr", - "pillar", - "rlang", - "tibble", - "tidyselect", - "vctrs" - ] - }, - "dtplyr": { - "Package": "dtplyr", - "Version": "1.2.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "c5f8828a0b459a703db190b001ad4818", - "Requirements": [ - "crayon", - "data.table", - "dplyr", - "ellipsis", - "glue", - "lifecycle", - "rlang", - "tibble", - "tidyselect", - "vctrs" - ] + "Package": "dplyr", + "Version": "1.1.4", + "Repository": "CRAN" }, "ellipsis": { + "Source": "Repository", "Package": "ellipsis", "Version": "0.3.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077", - "Requirements": [ - "rlang" - ] + "Repository": "CRAN" }, "evaluate": { - "Package": "evaluate", - "Version": "0.18", "Source": "Repository", - "Repository": "CRAN", - "Hash": "6b6c0f8467cd4ce0b500cabbc1bd1763", - "Requirements": [] + "Package": "evaluate", + "Version": "0.23", + "Repository": "CRAN" }, "fansi": { - "Package": "fansi", - "Version": "1.0.3", "Source": "Repository", - "Repository": "CRAN", - "Hash": "83a8afdbe71839506baa9f90eebad7ec", - "Requirements": [] - }, - "farver": { - "Package": "farver", - "Version": "2.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8106d78941f34855c440ddb946b8f7a5", - "Requirements": [] + "Package": "fansi", + "Version": "1.0.5", + "Repository": "CRAN" }, "fastmap": { - "Package": "fastmap", - "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "77bd60a6157420d4ffa93b27cf6a58b8", - "Requirements": [] - }, - "fnmate": { - "Package": "fnmate", - "Version": "0.0.6", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "milesmcbain", - "RemoteRepo": "fnmate", - "RemoteRef": "master", - "RemoteSha": "18a4c00536e0deafeb6b3f91e48b53b641f47e6a", - "Hash": "7e61b0c24031d40d347cab51e90a3ca3", - "Requirements": [ - "clipr", - "gert", - "glue", - "magrittr", - "purrr", - "readr", - "rlang", - "rstudioapi" - ] + "Package": "fastmap", + "Version": "1.1.1", + "Repository": "CRAN" }, "fontawesome": { - "Package": "fontawesome", - "Version": "0.4.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "c5a628c2570aa86a96cc6ef739d8bfda", - "Requirements": [ - "htmltools", - "rlang" - ] - }, - "forcats": { - "Package": "forcats", + "Package": "fontawesome", "Version": "0.5.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "9d95bc88206321cd1bc98480ecfd74bb", - "Requirements": [ - "cli", - "ellipsis", - "glue", - "lifecycle", - "magrittr", - "rlang", - "tibble", - "withr" - ] - }, - "fresh": { - "Package": "fresh", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fa54367040deb4537da49b7ac0ee5770", - "Requirements": [ - "htmltools", - "rstudioapi", - "sass", - "shiny" - ] + "Repository": "CRAN" }, "fs": { - "Package": "fs", - "Version": "1.5.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "7c89603d81793f0d5486d91ab1fc6f1d", - "Requirements": [] - }, - "furrr": { - "Package": "furrr", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "da7a4c32196cb2262a41dd5a25d486ff", - "Requirements": [ - "future", - "globals", - "lifecycle", - "purrr", - "rlang", - "vctrs" - ] - }, - "future": { - "Package": "future", - "Version": "1.29.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "783c201d2edfee73263de8e17cbdfa8e", - "Requirements": [ - "digest", - "globals", - "listenv", - "parallelly" - ] - }, - "gargle": { - "Package": "gargle", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "cca71329ad88e21267f09255d3f008c2", - "Requirements": [ - "cli", - "fs", - "glue", - "httr", - "jsonlite", - "rappdirs", - "rlang", - "rstudioapi", - "withr" - ] + "Package": "fs", + "Version": "1.6.3", + "Repository": "CRAN" }, "generics": { + "Source": "Repository", "Package": "generics", "Version": "0.1.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "15e9634c0fcd294799e9b2e929ed1b86", - "Requirements": [] - }, - "gert": { - "Package": "gert", - "Version": "1.9.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "9a091a6d2fb91e43afd4337e2dcef2e7", - "Requirements": [ - "askpass", - "credentials", - "openssl", - "rstudioapi", - "sys", - "zip" - ] - }, - "ggplot2": { - "Package": "ggplot2", - "Version": "3.4.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fd2aab12f54400c6bca43687231e246b", - "Requirements": [ - "MASS", - "cli", - "glue", - "gtable", - "isoband", - "lifecycle", - "mgcv", - "rlang", - "scales", - "tibble", - "vctrs", - "withr" - ] - }, - "gh": { - "Package": "gh", - "Version": "1.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b6a12054ee13dce0f6696c019c10e539", - "Requirements": [ - "cli", - "gitcreds", - "httr", - "ini", - "jsonlite" - ] - }, - "gitcreds": { - "Package": "gitcreds", - "Version": "0.1.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe", - "Requirements": [] - }, - "globals": { - "Package": "globals", - "Version": "0.16.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "baa9585ab4ce47a9f4618e671778cc6f", - "Requirements": [ - "codetools" - ] + "Repository": "CRAN" }, "glue": { + "Source": "Repository", "Package": "glue", "Version": "1.6.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e", - "Requirements": [] - }, - "googledrive": { - "Package": "googledrive", - "Version": "2.0.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c3a25adbbfbb03f12e6f88c5fb1f3024", - "Requirements": [ - "cli", - "gargle", - "glue", - "httr", - "jsonlite", - "lifecycle", - "magrittr", - "pillar", - "purrr", - "rlang", - "tibble", - "uuid", - "vctrs", - "withr" - ] - }, - "googlesheets4": { - "Package": "googlesheets4", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3b449d5292327880fc6cb61d0b2e9063", - "Requirements": [ - "cellranger", - "cli", - "curl", - "gargle", - "glue", - "googledrive", - "httr", - "ids", - "magrittr", - "purrr", - "rematch2", - "rlang", - "tibble", - "vctrs" - ] - }, - "gpg": { - "Package": "gpg", - "Version": "1.2.8", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "582c2d9f0d2d023c66c08fabeb90ff1b", - "Requirements": [ - "askpass", - "curl" - ] - }, - "gt": { - "Package": "gt", - "Version": "0.8.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "d100be8d1f54dc589cc8d63366839287", - "Requirements": [ - "base64enc", - "bigD", - "bitops", - "cli", - "commonmark", - "dplyr", - "fs", - "ggplot2", - "glue", - "htmltools", - "juicyjuice", - "magrittr", - "rlang", - "sass", - "scales", - "tibble", - "tidyselect" - ] - }, - "gtable": { - "Package": "gtable", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "36b4265fb818f6a342bed217549cd896", - "Requirements": [] - }, - "haven": { - "Package": "haven", - "Version": "2.5.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5b45a553fca2217a07b6f9c843304c44", - "Requirements": [ - "cli", - "cpp11", - "forcats", - "hms", - "lifecycle", - "readr", - "rlang", - "tibble", - "tidyselect", - "vctrs" - ] + "Repository": "CRAN" }, "here": { + "Source": "Repository", "Package": "here", "Version": "1.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "24b224366f9c2e7534d2344d10d59211", - "Requirements": [ - "rprojroot" - ] + "Repository": "CRAN" }, "highr": { - "Package": "highr", - "Version": "0.9", "Source": "Repository", - "Repository": "CRAN", - "Hash": "8eb36c8125038e648e5d111c0d7b2ed4", - "Requirements": [ - "xfun" - ] - }, - "hms": { - "Package": "hms", - "Version": "1.1.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "41100392191e1244b887878b533eea91", - "Requirements": [ - "ellipsis", - "lifecycle", - "pkgconfig", - "rlang", - "vctrs" - ] + "Package": "highr", + "Version": "0.10", + "Repository": "CRAN" }, "htmltools": { - "Package": "htmltools", - "Version": "0.5.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6496090a9e00f8354b811d1a2d47b566", - "Requirements": [ - "base64enc", - "digest", - "fastmap", - "rlang" - ] - }, - "htmlwidgets": { - "Package": "htmlwidgets", - "Version": "1.5.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "76147821cd3fcd8c4b04e1ef0498e7fb", - "Requirements": [ - "htmltools", - "jsonlite", - "yaml" - ] - }, - "httpuv": { - "Package": "httpuv", - "Version": "1.6.6", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fd090e236ae2dc0f0cdf33a9ec83afb6", - "Requirements": [ - "R6", - "Rcpp", - "later", - "promises" - ] - }, - "httr": { - "Package": "httr", - "Version": "1.4.4", "Source": "Repository", - "Repository": "CRAN", - "Hash": "57557fac46471f0dbbf44705cc6a5c8c", - "Requirements": [ - "R6", - "curl", - "jsonlite", - "mime", - "openssl" - ] - }, - "ids": { - "Package": "ids", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "99df65cfef20e525ed38c3d2577f7190", - "Requirements": [ - "openssl", - "uuid" - ] + "Package": "htmltools", + "Version": "0.5.7", + "Repository": "CRAN" }, "igraph": { - "Package": "igraph", - "Version": "1.3.5", "Source": "Repository", - "Repository": "CRAN", - "Hash": "132b06d7060f11ba8b4c7e7f385e9b7a", - "Requirements": [ - "Matrix", - "magrittr", - "pkgconfig", - "rlang" - ] - }, - "ini": { - "Package": "ini", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6154ec2223172bce8162d4153cda21f7", - "Requirements": [] - }, - "isoband": { - "Package": "isoband", - "Version": "0.2.6", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "cfdea9dea85c1a973991c8cbe299f4da", - "Requirements": [] + "Package": "igraph", + "Version": "1.5.1", + "Repository": "CRAN" }, "jquerylib": { + "Source": "Repository", "Package": "jquerylib", "Version": "0.1.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5aab57a3bd297eee1c1d862735972182", - "Requirements": [ - "htmltools" - ] + "Repository": "CRAN" }, "jsonlite": { - "Package": "jsonlite", - "Version": "1.8.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8b1bd0be62956f2a6b91ce84fac79a45", - "Requirements": [] - }, - "juicyjuice": { - "Package": "juicyjuice", - "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "3bcd11943da509341838da9399e18bce", - "Requirements": [ - "V8" - ] + "Package": "jsonlite", + "Version": "1.8.7", + "Repository": "CRAN" }, "knitr": { - "Package": "knitr", - "Version": "1.41", "Source": "Repository", - "Repository": "CRAN", - "Hash": "6d4971f3610e75220534a1befe81bc92", - "Requirements": [ - "evaluate", - "highr", - "stringr", - "xfun", - "yaml" - ] - }, - "labeling": { - "Package": "labeling", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3d5108641f47470611a32d0bdf357a72", - "Requirements": [] - }, - "later": { - "Package": "later", - "Version": "1.3.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "7e7b457d7766bc47f2a5f21cc2984f8e", - "Requirements": [ - "Rcpp", - "rlang" - ] - }, - "lattice": { - "Package": "lattice", - "Version": "0.20-45", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b64cdbb2b340437c4ee047a1f4c4377b", - "Requirements": [] + "Package": "knitr", + "Version": "1.45", + "Repository": "CRAN" }, "lifecycle": { - "Package": "lifecycle", - "Version": "1.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "001cecbeac1cff9301bdc3775ee46a86", - "Requirements": [ - "cli", - "glue", - "rlang" - ] - }, - "listenv": { - "Package": "listenv", - "Version": "0.8.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "0bde42ee282efb18c7c4e63822f5b4f7", - "Requirements": [] - }, - "lubridate": { - "Package": "lubridate", - "Version": "1.9.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "2af4550c2f0f7fbe7cbbf3dbf4ea3902", - "Requirements": [ - "generics", - "timechange" - ] + "Package": "lifecycle", + "Version": "1.0.4", + "Repository": "CRAN" }, "magrittr": { + "Source": "Repository", "Package": "magrittr", "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "7ce2733a9826b3aeb1775d56fd305472", - "Requirements": [] - }, - "markdown": { - "Package": "markdown", - "Version": "1.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f99f5d2d7b2c2c031343bfa7b9f97980", - "Requirements": [ - "commonmark", - "mime", - "xfun" - ] + "Repository": "CRAN" }, "memoise": { + "Source": "Repository", "Package": "memoise", "Version": "2.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c", - "Requirements": [ - "cachem", - "rlang" - ] - }, - "mgcv": { - "Package": "mgcv", - "Version": "1.8-41", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6b3904f13346742caa3e82dd0303d4ad", - "Requirements": [ - "Matrix", - "nlme" - ] + "Repository": "CRAN" }, "mime": { + "Source": "Repository", "Package": "mime", "Version": "0.12", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "18e9c28c1d3ca1560ce30658b22ce104", - "Requirements": [] - }, - "modelr": { - "Package": "modelr", - "Version": "0.1.10", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "bc23cda9c6a8f91dc1c10e1994494711", - "Requirements": [ - "broom", - "magrittr", - "purrr", - "rlang", - "tibble", - "tidyr", - "tidyselect", - "vctrs" - ] - }, - "munsell": { - "Package": "munsell", - "Version": "0.5.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "6dfe8bf774944bd5595785e3229d8771", - "Requirements": [ - "colorspace" - ] + "Repository": "CRAN" }, - "narray": { - "Package": "narray", - "Version": "0.5.1", + "mirai": { "Source": "Repository", - "Repository": "CRAN", - "Hash": "7ec5a2396d3c9ad4374495283dfcdc83", - "Requirements": [ - "Rcpp", - "progress", - "stringr" - ] + "Package": "mirai", + "Version": "0.11.2", + "Repository": "CRAN" }, - "nlme": { - "Package": "nlme", - "Version": "3.1-160", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "02e3c6e7df163aafa8477225e6827bc5", - "Requirements": [ - "lattice" - ] - }, - "openssl": { - "Package": "openssl", - "Version": "2.0.4", + "nanonext": { "Source": "Repository", - "Repository": "CRAN", - "Hash": "e86c5ffeb8474a9e03d75f5d2919683e", - "Requirements": [ - "askpass" - ] - }, - "parallelly": { - "Package": "parallelly", - "Version": "1.32.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "9e3d8d65cb9c5ca5966340a6bfec60b2", - "Requirements": [] + "Package": "nanonext", + "Version": "0.10.4", + "Repository": "CRAN" }, "pillar": { - "Package": "pillar", - "Version": "1.8.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f2316df30902c81729ae9de95ad5a608", - "Requirements": [ - "cli", - "fansi", - "glue", - "lifecycle", - "rlang", - "utf8", - "vctrs" - ] - }, - "pingr": { - "Package": "pingr", - "Version": "2.0.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "b762f8f7d305f7eb0bab96eb1a3c782a", - "Requirements": [ - "processx" - ] + "Package": "pillar", + "Version": "1.9.0", + "Repository": "CRAN" }, "pkgconfig": { + "Source": "Repository", "Package": "pkgconfig", "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "01f28d4278f15c76cddbea05899c5d6f", - "Requirements": [] - }, - "prettyunits": { - "Package": "prettyunits", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "95ef9167b75dde9d2ccc3c7528393e7e", - "Requirements": [] + "Repository": "CRAN" }, "processx": { - "Package": "processx", - "Version": "3.8.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a33ee2d9bf07564efb888ad98410da84", - "Requirements": [ - "R6", - "ps" - ] - }, - "progress": { - "Package": "progress", - "Version": "1.2.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061", - "Requirements": [ - "R6", - "crayon", - "hms", - "prettyunits" - ] - }, - "promises": { - "Package": "promises", - "Version": "1.2.0.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "4ab2c43adb4d4699cf3690acd378d75d", - "Requirements": [ - "R6", - "Rcpp", - "later", - "magrittr", - "rlang" - ] + "Package": "processx", + "Version": "3.8.2", + "Repository": "CRAN" }, "ps": { - "Package": "ps", - "Version": "1.7.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "68dd03d98a5efd1eb3012436de45ba83", - "Requirements": [] + "Package": "ps", + "Version": "1.7.5", + "Repository": "CRAN" }, "purrr": { - "Package": "purrr", - "Version": "0.3.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "54842a2443c76267152eface28d9e90a", - "Requirements": [ - "magrittr", - "rlang" - ] - }, - "qs": { - "Package": "qs", - "Version": "0.25.4", "Source": "Repository", - "Repository": "CRAN", - "Hash": "ffc0d1d65ca061b04ab23e790828d897", - "Requirements": [ - "RApiSerialize", - "Rcpp", - "stringfish" - ] + "Package": "purrr", + "Version": "1.0.2", + "Repository": "CRAN" }, "rappdirs": { + "Source": "Repository", "Package": "rappdirs", "Version": "0.3.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5e3c5dc0b071b21fa128676560dbe94d", - "Requirements": [] + "Repository": "CRAN" }, - "readr": { - "Package": "readr", - "Version": "2.1.3", + "remotes": { "Source": "Repository", - "Repository": "CRAN", - "Hash": "2dfbfc673ccb3de3d8836b4b3bd23d14", - "Requirements": [ - "R6", - "cli", - "clipr", - "cpp11", - "crayon", - "hms", - "lifecycle", - "rlang", - "tibble", - "tzdb", - "vroom" - ] - }, - "readxl": { - "Package": "readxl", - "Version": "1.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "5c1fbc365ac0a3fe7728ac79108b8e64", - "Requirements": [ - "cellranger", - "cpp11", - "progress", - "tibble" - ] - }, - "rematch": { - "Package": "rematch", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c66b930d20bb6d858cd18e1cebcfae5c", - "Requirements": [] - }, - "rematch2": { - "Package": "rematch2", - "Version": "2.1.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "76c9e04c712a05848ae7a23d2f170a40", - "Requirements": [ - "tibble" - ] + "Package": "remotes", + "Version": "2.4.2.1", + "Repository": "CRAN" }, "renv": { - "Package": "renv", - "Version": "0.16.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c9e8442ab69bc21c9697ecf856c1e6c7", - "Requirements": [] - }, - "reprex": { - "Package": "reprex", - "Version": "2.0.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "d66fe009d4c20b7ab1927eb405db9ee2", - "Requirements": [ - "callr", - "cli", - "clipr", - "fs", - "glue", - "knitr", - "lifecycle", - "rlang", - "rmarkdown", - "rstudioapi", - "withr" - ] + "Package": "renv", + "Version": "1.0.3", + "Repository": "CRAN" }, "rlang": { - "Package": "rlang", - "Version": "1.0.6", "Source": "Repository", - "Repository": "CRAN", - "Hash": "4ed1f8336c8d52c3e750adcdc57228a7", - "Requirements": [] + "Package": "rlang", + "Version": "1.1.2", + "Repository": "CRAN" }, "rmarkdown": { - "Package": "rmarkdown", - "Version": "2.18", "Source": "Repository", - "Repository": "CRAN", - "Hash": "8063c4e953cefb651e8cd58c82c82d2d", - "Requirements": [ - "bslib", - "evaluate", - "htmltools", - "jquerylib", - "jsonlite", - "knitr", - "stringr", - "tinytex", - "xfun", - "yaml" - ] + "Package": "rmarkdown", + "Version": "2.25", + "Repository": "CRAN" }, "rprojroot": { - "Package": "rprojroot", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "1de7ab598047a87bba48434ba35d497d", - "Requirements": [] - }, - "rstudioapi": { - "Package": "rstudioapi", - "Version": "0.14", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "690bd2acc42a9166ce34845884459320", - "Requirements": [] - }, - "rvest": { - "Package": "rvest", - "Version": "1.0.3", "Source": "Repository", - "Repository": "CRAN", - "Hash": "a4a5ac819a467808c60e36e92ddf195e", - "Requirements": [ - "cli", - "glue", - "httr", - "lifecycle", - "magrittr", - "rlang", - "selectr", - "tibble", - "withr", - "xml2" - ] + "Package": "rprojroot", + "Version": "2.0.4", + "Repository": "CRAN" }, "sass": { + "Source": "GitHub", "Package": "sass", - "Version": "0.4.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c76cbac7ca04ce82d8c38e29729987a3", - "Requirements": [ - "R6", - "fs", - "htmltools", - "rappdirs", - "rlang" - ] - }, - "scales": { - "Package": "scales", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "906cb23d2f1c5680b8ce439b44c6fa63", - "Requirements": [ - "R6", - "RColorBrewer", - "farver", - "labeling", - "lifecycle", - "munsell", - "rlang", - "viridisLite" - ] - }, - "selectr": { - "Package": "selectr", - "Version": "0.4-2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3838071b66e0c566d55cc26bd6e27bf4", - "Requirements": [ - "R6", - "stringr" - ] - }, - "shiny": { - "Package": "shiny", - "Version": "1.7.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "fe12df67fdb3b1142325cc54f100cc06", - "Requirements": [ - "R6", - "bslib", - "cachem", - "commonmark", - "crayon", - "ellipsis", - "fastmap", - "fontawesome", - "glue", - "htmltools", - "httpuv", - "jsonlite", - "later", - "lifecycle", - "mime", - "promises", - "rlang", - "sourcetools", - "withr", - "xtable" - ] - }, - "shinyWidgets": { - "Package": "shinyWidgets", - "Version": "0.7.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "2fb744ccca8ab2b6caf99e15dc5f0146", - "Requirements": [ - "anytime", - "bslib", - "htmltools", - "jsonlite", - "rlang", - "sass", - "shiny" - ] - }, - "shinybusy": { - "Package": "shinybusy", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "cf0b9330f677599316a4b36682081e8b", - "Requirements": [ - "htmltools", - "htmlwidgets", - "jsonlite", - "shiny" - ] - }, - "sourcetools": { - "Package": "sourcetools", - "Version": "0.1.7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "947e4e02a79effa5d512473e10f41797", - "Requirements": [] - }, - "stringfish": { - "Package": "stringfish", - "Version": "0.15.7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "d860d083dadb4117e305b6451bb2dc8b", - "Requirements": [ - "Rcpp", - "RcppParallel" - ] + "Version": "0.4.7.9000", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "rstudio", + "RemoteRepo": "sass", + "RemoteRef": "main", + "RemoteSha": "4f42680340264e1655745a99cbd7e0c0481b6a01" }, "stringi": { - "Package": "stringi", - "Version": "1.7.8", "Source": "Repository", - "Repository": "CRAN", - "Hash": "a68b980681bcbc84c7a67003fa796bfb", - "Requirements": [] + "Package": "stringi", + "Version": "1.8.2", + "Repository": "CRAN" }, "stringr": { - "Package": "stringr", - "Version": "1.4.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "a66ad12140cd34d4f9dfcc19e84fc2a5", - "Requirements": [ - "glue", - "magrittr", - "stringi" - ] - }, - "sys": { - "Package": "sys", - "Version": "3.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "34c16f1ef796057bfa06d3f4ff818a5d", - "Requirements": [] + "Package": "stringr", + "Version": "1.5.1", + "Repository": "CRAN" }, "tarchetypes": { - "Package": "tarchetypes", - "Version": "0.7.3", "Source": "Repository", - "Repository": "CRAN", - "Hash": "2dd94d8da791ed9b51491f3b259fe71e", - "Requirements": [ - "digest", - "dplyr", - "fs", - "furrr", - "rlang", - "targets", - "tibble", - "tidyselect", - "vctrs", - "withr" - ] + "Package": "tarchetypes", + "Version": "0.7.9.9000", + "Repository": "https://ropensci.r-universe.dev", + "RemoteUrl": "https://github.com/ropensci/tarchetypes", + "RemoteRef": "main", + "RemoteSha": "0e3f18836b4f028cdca8d64b3b4d3c8e37a384e5" }, "targets": { - "Package": "targets", - "Version": "0.14.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "6e092c00e6093177f52ec5677ee2038c", - "Requirements": [ - "R6", - "base64url", - "callr", - "cli", - "codetools", - "data.table", - "digest", - "igraph", - "knitr", - "rlang", - "tibble", - "tidyselect", - "vctrs", - "withr", - "yaml" - ] - }, - "tflow": { - "Package": "tflow", - "Version": "0.3.7", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "milesmcbain", - "RemoteRepo": "tflow", - "RemoteRef": "master", - "RemoteSha": "30cb6850ee7f69d462619f066ff739dc19ff1e7c", - "Remotes": "milesmcbain/fnmate, milesmcbain/capsule, milesmcbain/atcursor", - "Hash": "2bb2e5b6ab165cdacd09512c3a915a73", - "Requirements": [ - "atcursor", - "cli", - "fnmate", - "fs", - "glue", - "readr", - "rstudioapi", - "sourcetools", - "usethis", - "yaml" - ] + "Package": "targets", + "Version": "1.3.2.9002", + "Repository": "https://ropensci.r-universe.dev", + "RemoteUrl": "https://github.com/ropensci/targets", + "RemoteRef": "main", + "RemoteSha": "3274173a0bbcddc3cc8c85c3a7b45d0979e3be13" }, "tibble": { - "Package": "tibble", - "Version": "3.1.8", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "56b6934ef0f8c68225949a8672fe1a8f", - "Requirements": [ - "fansi", - "lifecycle", - "magrittr", - "pillar", - "pkgconfig", - "rlang", - "vctrs" - ] - }, - "tidyr": { - "Package": "tidyr", - "Version": "1.2.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "cdb403db0de33ccd1b6f53b83736efa8", - "Requirements": [ - "cpp11", - "dplyr", - "ellipsis", - "glue", - "lifecycle", - "magrittr", - "purrr", - "rlang", - "tibble", - "tidyselect", - "vctrs" - ] + "Package": "tibble", + "Version": "3.2.1", + "Repository": "CRAN" }, "tidyselect": { + "Source": "Repository", "Package": "tidyselect", "Version": "1.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "79540e5fcd9e0435af547d885f184fd5", - "Requirements": [ - "cli", - "glue", - "lifecycle", - "rlang", - "vctrs", - "withr" - ] - }, - "tidyverse": { - "Package": "tidyverse", - "Version": "1.3.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "972389aea7fa1a34739054a810d0c6f6", - "Requirements": [ - "broom", - "cli", - "crayon", - "dbplyr", - "dplyr", - "dtplyr", - "forcats", - "ggplot2", - "googledrive", - "googlesheets4", - "haven", - "hms", - "httr", - "jsonlite", - "lubridate", - "magrittr", - "modelr", - "pillar", - "purrr", - "readr", - "readxl", - "reprex", - "rlang", - "rstudioapi", - "rvest", - "stringr", - "tibble", - "tidyr", - "xml2" - ] - }, - "timechange": { - "Package": "timechange", - "Version": "0.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4657195cc632097bb8d140d626b519fb", - "Requirements": [ - "cpp11" - ] + "Repository": "CRAN" }, "tinytex": { - "Package": "tinytex", - "Version": "0.42", "Source": "Repository", - "Repository": "CRAN", - "Hash": "7629c6c1540835d5248e6e7df265fa74", - "Requirements": [ - "xfun" - ] - }, - "tzdb": { - "Package": "tzdb", - "Version": "0.3.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b2e1cbce7c903eaf23ec05c58e59fb5e", - "Requirements": [ - "cpp11" - ] + "Package": "tinytex", + "Version": "0.49", + "Repository": "CRAN" }, - "usethis": { - "Package": "usethis", - "Version": "2.1.6", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a67a22c201832b12c036cc059f1d137d", - "Requirements": [ - "cli", - "clipr", - "crayon", - "curl", - "desc", - "fs", - "gert", - "gh", - "glue", - "jsonlite", - "lifecycle", - "purrr", - "rappdirs", - "rlang", - "rprojroot", - "rstudioapi", - "whisker", - "withr", - "yaml" - ] + "using": { + "Source": "GitHub", + "Package": "using", + "Version": "0.4.0", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "anthonynorth", + "RemoteRepo": "using", + "RemoteRef": "master", + "RemoteSha": "c33a88c5c42c64fd84423a65af7b5a3ae8d5e64a" }, "utf8": { - "Package": "utf8", - "Version": "1.2.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "c9c462b759a5cc844ae25b5942654d13", - "Requirements": [] + "Package": "utf8", + "Version": "1.2.4", + "Repository": "CRAN" }, "uuid": { - "Package": "uuid", - "Version": "1.1-0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "f1cb46c157d080b729159d407be83496", - "Requirements": [] + "Package": "uuid", + "Version": "1.1-1", + "Repository": "CRAN" }, "vctrs": { - "Package": "vctrs", - "Version": "0.5.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "970324f6572b4fd81db507b5d4062cb0", - "Requirements": [ - "cli", - "glue", - "lifecycle", - "rlang" - ] - }, - "viridisLite": { - "Package": "viridisLite", - "Version": "0.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "62f4b5da3e08d8e5bcba6cac15603f70", - "Requirements": [] - }, - "visNetwork": { - "Package": "visNetwork", - "Version": "2.1.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3e48b097e8d9a91ecced2ed4817a678d", - "Requirements": [ - "htmltools", - "htmlwidgets", - "jsonlite", - "magrittr" - ] - }, - "vroom": { - "Package": "vroom", - "Version": "1.6.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "64f81fdead6e0d250fb041e175d123ab", - "Requirements": [ - "bit64", - "cli", - "cpp11", - "crayon", - "glue", - "hms", - "lifecycle", - "progress", - "rlang", - "tibble", - "tidyselect", - "tzdb", - "vctrs", - "withr" - ] - }, - "waiter": { - "Package": "waiter", - "Version": "0.2.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "93e6b6c8ae3f81d4be77a0dc74e5cf5e", - "Requirements": [ - "R6", - "htmltools", - "shiny" - ] - }, - "whisker": { - "Package": "whisker", - "Version": "0.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ca970b96d894e90397ed20637a0c1bbe", - "Requirements": [] - }, - "whoami": { - "Package": "whoami", - "Version": "1.3.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "ef0f4d9b8f2cc2ebeccae1d725b8a023", - "Requirements": [ - "httr", - "jsonlite" - ] + "Package": "vctrs", + "Version": "0.6.5", + "Repository": "CRAN" }, "withr": { - "Package": "withr", - "Version": "2.5.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "c0e49a9760983e81e55cdd9be92e7182", - "Requirements": [] + "Package": "withr", + "Version": "2.5.2", + "Repository": "CRAN" }, "xfun": { - "Package": "xfun", - "Version": "0.35", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f576593107bdf9aa7db48ef75a8c05fb", - "Requirements": [] - }, - "xml2": { - "Package": "xml2", - "Version": "1.3.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "40682ed6a969ea5abfd351eb67833adc", - "Requirements": [] - }, - "xtable": { - "Package": "xtable", - "Version": "1.8-4", "Source": "Repository", - "Repository": "CRAN", - "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2", - "Requirements": [] + "Package": "xfun", + "Version": "0.41", + "Repository": "CRAN" }, "yaml": { - "Package": "yaml", - "Version": "2.3.6", "Source": "Repository", - "Repository": "CRAN", - "Hash": "9b570515751dcbae610f29885e025b41", - "Requirements": [] - }, - "zip": { - "Package": "zip", - "Version": "2.2.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c42bfcec3fa6a0cce17ce1f8bc684f88", - "Requirements": [] + "Package": "yaml", + "Version": "2.3.7", + "Repository": "CRAN" } } } diff --git a/renv/settings.dcf b/renv/settings.dcf index 169d82f..84cbcda 100644 --- a/renv/settings.dcf +++ b/renv/settings.dcf @@ -1,6 +1,6 @@ bioconductor.version: external.libraries: -ignored.packages: +ignored.packages: ehaproj, tflow, fnmate package.dependency.fields: Imports, Depends, LinkingTo r.version: snapshot.type: implicit diff --git a/renv/settings.json b/renv/settings.json new file mode 100644 index 0000000..91843e2 --- /dev/null +++ b/renv/settings.json @@ -0,0 +1,23 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [ + "ehaproj", + "tflow", + "fnmate" + ], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": null, + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/reports/report-template.html b/reports/report-template.html new file mode 100644 index 0000000..fff976e --- /dev/null +++ b/reports/report-template.html @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + +An example Report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
LS0tCnRpdGxlOiAiQW4gZXhhbXBsZSBSZXBvcnQiCmF1dGhvcjogIkVjb0hlYWx0aCBBbGxpYW5jZSIKZGF0ZTogIlByb2R1Y2VkIG9uIGByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKICAgIHNlbGZfY29udGFpbmVkOiBUUlVFCiAgICB0b2M6IFRSVUUKLS0tCgpgYGB7ciwgaW5jbHVkZSA9IEZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoCiAgbWVzc2FnZSA9IEZBTFNFLAogIHdhcm5pbmcgPSBGQUxTRSwKICBlcnJvciA9IEZBTFNFLAogIGNvbGxhcHNlID0gVFJVRSwKICBjb21tZW50ID0gIiM+IiwKICBmaWcucGF0aCA9ICJmaWd1cmVzLyIKKQpgYGA=
+ + + +
+ + + + + + + + + + + + + + + + diff --git a/use-template.R b/use-template.R deleted file mode 100644 index a3e62e8..0000000 --- a/use-template.R +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env Rscript - -read_input <- function(prompt) { - if (interactive()) { - out <- readline(prompt) - } else { - cat(prompt); - out <- readLines("stdin",n=1); - cat( "\n" ) - } - out -} - -temp_directory <- tempfile(pattern = "dir") -working_directory <- getwd() -dir <- basename(working_directory) -zipfile <- tempfile(fileext = ".zip") - -name_prompt <- paste0("Enter project name (or press Enter to use current directory, '", dir, "'): ") -project_name <- read_input(name_prompt) - -message("Downloding template...\n") -download.file( - "https://github.com/ecohealthalliance/container-template/archive/refs/heads/download-script.zip", - quiet = TRUE, - destfile = zipfile) -unzip(zipfile, exdir = temp_directory) -temp_template_directory <- list.files(temp_directory, full.names = TRUE) -template_directory <- tempfile(pattern = "dir") -invisible(file.rename(temp_template_directory, template_directory)) -invisible(file.remove(zipfile)) - - -projfiles <- list.files(template_directory, all.files = TRUE, full.names = TRUE, recursive = TRUE) - -message("• Modifying template to use '", project_name, "' as name...") -for (pfile in projfiles) { - # Rename any files with the template name to the project name - if(grepl("container-template", pfile)) { - new_name <- gsub("container-template", project_name, pfile, fixed = TRUE) - file.rename(pfile, new_name) - pfile <- new_name - } - # Replace any text of placeholders with the project name - lines <- readLines(pfile, warn = FALSE) - updated_lines <- gsub("container-template", project_name, lines, fixed = TRUE) - cat(paste(updated_lines, collapse = "\n"), file = pfile) -} - - -setwd(template_directory) -invisible(file.remove('README.md')) -invisible(file.rename('README-template.Rmd', "README.Rmd")) - -system("RENV_VERBOSE=FALSE Rscript -e 'invisible()'") -org = "ecohealthalliance" - -initialize_script <- paste0(' -read_input <- function(prompt) { - if (interactive()) { - out <- readline(prompt) - } else { - cat(prompt); - out <- readLines("stdin",n=1); - cat( "\n" ) - } - out -} -test <- read_input("test: ") -message("• Bootstrapping {renv} and installing packages...") -renv::restore() -message("• Running `targets` pipeline...") -targets::tar_make(reporter = "silent") -message("• Setting up Git Repository...") -invisible(gert::git_init()) -invisible(gert::git_add(".")) -invisible(gert::git_commit("Initial commit of project template")) -#response <- gh::gh("POST /orgs/', org, '/repos", name = "', project_name, '", type = "private")') -system(paste("Rscript -e '", initialize_script, "'")) - - -cleanup_script <- ' -message("• Cleaning up unneeded packages...") -renv::clean() -message("• Updating packages...") -renv::update() -renv::snapshot()' - -system(paste("Rscript -e '", cleanup_script, "'")) - -file.remove("use-template.R")