From eb8cb1fd95644c1712f36ead93ff1a45e59df3dd Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 5 Sep 2023 10:36:07 -0700 Subject: [PATCH 01/32] Add ORCID [ci skip] --- DESCRIPTION | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index efef441..947441a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,10 +1,11 @@ Package: progressr -Version: 0.14.0 +Version: 0.14.0-9000 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. -Authors@R: c( - person("Henrik", "Bengtsson", role=c("aut", "cre", "cph"), - email = "henrikb@braju.com")) +Authors@R: c(person("Henrik", "Bengtsson", + role = c("aut", "cre", "cph"), + email = "henrikb@braju.com", + comment = c(ORCID = "0000-0002-7579-5165"))) License: GPL (>= 3) Depends: R (>= 3.5.0) From ad547d1a20b7a22fa5ecf453c8d511442256288a Mon Sep 17 00:00:00 2001 From: BHGC Website GHA Workflow Runner Date: Tue, 12 Dec 2023 08:09:19 -0800 Subject: [PATCH 02/32] Add example for %dofuture% (fix #163) --- DESCRIPTION | 2 +- README.md | 31 +++++++++++++++++++++++++++++-- incl/OVERVIEW.md | 31 +++++++++++++++++++++++++++++-- vignettes/progressr-intro.md | 31 +++++++++++++++++++++++++++++-- 4 files changed, 88 insertions(+), 7 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 947441a..77ab2cc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9000 +Version: 0.14.0-9001 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/README.md b/README.md index a301d86..e652358 100644 --- a/README.md +++ b/README.md @@ -617,8 +617,35 @@ my_fcn(1:5) ### foreach() with doFuture Here is an example that uses `foreach()` of the **[foreach]** package -to parallelize on the local machine (via **[doFuture]**) while at the -same time signaling progression updates: +together with `%dofuture%` of the **[doFuture]** package to +parallelize while reporting on progress. This example parallelizes on +the local machine, it works alsof for remote machines: + +```r +library(doFuture) ## %dofuture% +plan(multisession) + +library(progressr) +handlers(global = TRUE) +handlers("progress", "beepr") + +my_fcn <- function(xs) { + p <- progressor(along = xs) + foreach(x = xs) %dofuture% { + Sys.sleep(6.0-x) + p(sprintf("x=%g", x)) + sqrt(x) + } +} + +my_fcn(1:5) +# / [================>-----------------------------] 40% x=2 +``` + + +For existing code using the traditional `%dopar%` operators of the +**[foreach]** package, we can register the **[doFuture]** adaptor and +use the same **progressr** as above to progress updates; ```r library(doFuture) diff --git a/incl/OVERVIEW.md b/incl/OVERVIEW.md index 8fea0a0..250fc60 100644 --- a/incl/OVERVIEW.md +++ b/incl/OVERVIEW.md @@ -609,8 +609,35 @@ my_fcn(1:5) ### foreach() with doFuture Here is an example that uses `foreach()` of the **[foreach]** package -to parallelize on the local machine (via **[doFuture]**) while at the -same time signaling progression updates: +together with `%dofuture%` of the **[doFuture]** package to +parallelize while reporting on progress. This example parallelizes on +the local machine, it works alsof for remote machines: + +```r +library(doFuture) ## %dofuture% +plan(multisession) + +library(progressr) +handlers(global = TRUE) +handlers("progress", "beepr") + +my_fcn <- function(xs) { + p <- progressor(along = xs) + foreach(x = xs) %dofuture% { + Sys.sleep(6.0-x) + p(sprintf("x=%g", x)) + sqrt(x) + } +} + +my_fcn(1:5) +# / [================>-----------------------------] 40% x=2 +``` + + +For existing code using the traditional `%dopar%` operators of the +**[foreach]** package, we can register the **[doFuture]** adaptor and +use the same **progressr** as above to progress updates; ```r library(doFuture) diff --git a/vignettes/progressr-intro.md b/vignettes/progressr-intro.md index 9ebd04d..8fa9cb8 100644 --- a/vignettes/progressr-intro.md +++ b/vignettes/progressr-intro.md @@ -620,8 +620,35 @@ my_fcn(1:5) ### foreach() with doFuture Here is an example that uses `foreach()` of the **[foreach]** package -to parallelize on the local machine (via **[doFuture]**) while at the -same time signaling progression updates: +together with `%dofuture%` of the **[doFuture]** package to +parallelize while reporting on progress. This example parallelizes on +the local machine, it works alsof for remote machines: + +```r +library(doFuture) ## %dofuture% +plan(multisession) + +library(progressr) +handlers(global = TRUE) +handlers("progress", "beepr") + +my_fcn <- function(xs) { + p <- progressor(along = xs) + foreach(x = xs) %dofuture% { + Sys.sleep(6.0-x) + p(sprintf("x=%g", x)) + sqrt(x) + } +} + +my_fcn(1:5) +# / [================>-----------------------------] 40% x=2 +``` + + +For existing code using the traditional `%dopar%` operators of the +**[foreach]** package, we can register the **[doFuture]** adaptor and +use the same **progressr** as above to progress updates; ```r library(doFuture) From 3df84ada703f7db914338eb5228502893b8029d5 Mon Sep 17 00:00:00 2001 From: BHGC Website GHA Workflow Runner Date: Tue, 12 Dec 2023 09:19:39 -0800 Subject: [PATCH 03/32] GA: modernize --- .github/workflows/R-CMD-check.yaml | 4 ++-- .github/workflows/covr.yaml | 2 +- .github/workflows/revdepcheck-top.yaml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 8127602..5e7bc69 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -25,7 +25,7 @@ jobs: - {os: ubuntu-22.04, r: 'oldrel' } - {os: ubuntu-22.04, r: 'oldrel-1' } - {os: ubuntu-22.04, r: 'oldrel-2' } - - {os: ubuntu-22.04, r: '3.5' } + - {os: ubuntu-22.04, r: '3.6' } - {os: ubuntu-22.04, r: 'release' , language: ko, label: ko } - {os: ubuntu-22.04, r: 'release' , language: zh_CN, label: zh_CN } - {os: ubuntu-22.04, r: 'release' , language: zh_TW, label: zh_TW } @@ -46,7 +46,7 @@ jobs: LANGUAGE: ${{ matrix.config.language }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/covr.yaml b/.github/workflows/covr.yaml index c8d103a..03da23e 100644 --- a/.github/workflows/covr.yaml +++ b/.github/workflows/covr.yaml @@ -26,7 +26,7 @@ jobs: _R_CHECK_CRAN_INCOMING_: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/revdepcheck-top.yaml b/.github/workflows/revdepcheck-top.yaml index d2b7fbe..9675eb1 100644 --- a/.github/workflows/revdepcheck-top.yaml +++ b/.github/workflows/revdepcheck-top.yaml @@ -32,7 +32,7 @@ jobs: _R_CHECK_CRAN_INCOMING_: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 From 6bc5f01d181e17eed8357224bf58aa329e8ff0c1 Mon Sep 17 00:00:00 2001 From: BHGC Website GHA Workflow Runner Date: Tue, 12 Dec 2023 09:20:52 -0800 Subject: [PATCH 04/32] GA: Save macOS minutes --- .github/workflows/R-CMD-check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 5e7bc69..67886d4 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -18,7 +18,7 @@ jobs: config: - {os: windows-latest, r: 'devel' } - {os: windows-latest, r: 'release' } - - {os: macOS-latest, r: 'devel' } +# - {os: macOS-latest, r: 'devel' } - {os: macOS-latest, r: 'release' } - {os: ubuntu-22.04, r: 'devel' } - {os: ubuntu-22.04, r: 'release' } From 4a2c9da24b94212edf5e9d423e335f18212c3b46 Mon Sep 17 00:00:00 2001 From: Merlin Scherer Date: Fri, 11 Oct 2024 16:37:53 +0200 Subject: [PATCH 05/32] Call cli_progress_done on finish [#172] --- R/handler_cli.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/handler_cli.R b/R/handler_cli.R index 193ac35..887c430 100644 --- a/R/handler_cli.R +++ b/R/handler_cli.R @@ -172,7 +172,6 @@ handler_cli <- function(show_after = 0.0, intrusiveness = getOption("progressr.i if (ratio >= 1.0) { cli_progress_done(id = pb$id, .envir = pb$envir) - erase_progress_bar(pb) } else { set <- ratio * pb$total stopifnot(length(set) == 1L, is.numeric(set), is.finite(set), @@ -245,7 +244,9 @@ handler_cli <- function(show_after = 0.0, intrusiveness = getOption("progressr.i reporter$update(config = config, state = state, progression = progression, ...) if (config$clear) { pb_update(pb, ratio = 1.0) + erase_progress_bar(pb) } else { + pb_update(pb, ratio = 1.0) cat(file = stderr(), "\n") } From 956b357bca95de347565cc6ede1281c7325303d7 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 20:02:21 -0700 Subject: [PATCH 06/32] Add more debug output --- DESCRIPTION | 2 +- NEWS.md | 5 +++++ R/global_progression_handler.R | 20 ++++++++++++++++++-- R/with_progress.R | 2 +- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 77ab2cc..9f98fe6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9001 +Version: 0.14.0-9002 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index 134baea..4bc4167 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,8 @@ +# Version (development version) + + * ... + + # Version 0.14.0 [2023-08-10] ## New Features diff --git a/R/global_progression_handler.R b/R/global_progression_handler.R index 9c5da05..60f6368 100644 --- a/R/global_progression_handler.R +++ b/R/global_progression_handler.R @@ -335,14 +335,24 @@ if (getRversion() < "4.0.0") { } -as_progression_handler <- function(handlers, drop = TRUE) { +as_progression_handler <- function(handlers, drop = TRUE, debug = FALSE) { ## FIXME(?) if (!is.list(handlers)) handlers <- list(handlers) - + + if (debug) { + message("as_progression_handler() ...") + message(sprintf("- Number of progression handlers: %d", length(handlers))) + on.exit({ + message(sprintf("- Number of progression handlers: %d", length(handlers))) + message("as_progression_handler() ... done") + }) + } + for (kk in seq_along(handlers)) { handler <- handlers[[kk]] stop_if_not(is.function(handler)) if (!inherits(handler, "progression_handler")) { + if (debug) message(sprintf("- Handler %d is a function; calling it", kk)) handler <- handler() stop_if_not(is.function(handler), inherits(handler, "progression_handler")) @@ -352,11 +362,17 @@ as_progression_handler <- function(handlers, drop = TRUE) { ## Keep only enabled handlers? if (drop) { + if (debug) message(sprintf("- drop = TRUE => dropping non-enabled handlers")) enabled <- vapply(handlers, FUN = function(h) { env <- environment(h) value <- env$enable isTRUE(value) || is.null(value) }, FUN.VALUE = TRUE) + + if (debug && !all(enabled)) { + message(sprintf("- Detected %d non-enabled handlers: %s", sum(!enabled), vapply(handlers[!enabled], FUN = function(h) class(h)[1], FUN.VALUE = NA_character_))) + } + handlers <- handlers[enabled] } diff --git a/R/with_progress.R b/R/with_progress.R index 1b42ab8..81e5096 100644 --- a/R/with_progress.R +++ b/R/with_progress.R @@ -125,7 +125,7 @@ with_progress <- function(expr, handlers = progressr::handlers(), cleanup = TRUE progressr_in_globalenv("allow") on.exit(progressr_in_globalenv("disallow"), add = TRUE) - handlers <- as_progression_handler(handlers) + handlers <- as_progression_handler(handlers, debug = debug) ## Nothing to do? if (length(handlers) == 0L) { From a9f84a90f277d4c5b34b6caeb927122b33d78040 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 20:03:09 -0700 Subject: [PATCH 07/32] Refresh pkgdown --- pkgdown/_pkgdown.yml | 14 +++++++------- pkgdown/_pkgdown.yml.rsp | 10 ++++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index f769f48..c7e7827 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -19,18 +19,20 @@ navbar: pkgs: text: Packages menu: - - text: doFuture + - text: doFuture (map-reduce) href: https://doFuture.futureverse.org - - text: furrr + - text: furrr (map-reduce) href: https://furrr.futureverse.org - text: future href: https://future.futureverse.org - - text: future.apply + - text: future.apply (map-reduce) href: https://future.apply.futureverse.org - - text: future.batchtools + - text: future.batchtools (backend) href: https://future.batchtools.futureverse.org - - text: future.callr + - text: future.callr (backend) href: https://future.callr.futureverse.org + - text: future.mirai (backend) + href: https://future.mirai.futureverse.org - text: future.tests href: https://future.tests.futureverse.org - text: globals @@ -45,8 +47,6 @@ navbar: href: https://BiocParallel.FutureParam.futureverse.org - text: future.tools (experimental) href: https://future.tools.futureverse.org - - text: future.mirai (experimental) - href: https://future.mirai.futureverse.org - text: future.mapreduce (experimental) href: https://future.mapreduce.futureverse.org - text: marshal (experimental) diff --git a/pkgdown/_pkgdown.yml.rsp b/pkgdown/_pkgdown.yml.rsp index 6d931ca..fe85ef5 100644 --- a/pkgdown/_pkgdown.yml.rsp +++ b/pkgdown/_pkgdown.yml.rsp @@ -1,6 +1,8 @@ <% -pkgs <- c("globals", "listenv", "parallelly", "future", "future.apply", "furrr", "future.tests", "future.callr", "future.batchtools", "doFuture", "progressr") -pkgs_extra <- c("BiocParallel.FutureParam", "future.tools", "future.mirai", "future.mapreduce", "marshal") +pkgs_mapreduce <- c("future.apply", "doFuture", "furrr") +pkgs_backend <- c("future.batchtools", "future.callr", "future.mirai") +pkgs <- c("globals", "listenv", "parallelly", "future", "future.tests", "progressr", pkgs_mapreduce, pkgs_backend) +pkgs_extra <- c("BiocParallel.FutureParam", "future.tools", "future.mapreduce", "marshal") pkgs <- c(sort(pkgs), pkgs_extra) urls <- sprintf("https://%s.futureverse.org", pkgs) names(urls) <- pkgs @@ -16,7 +18,7 @@ url: https://<%= pkg %>.futureverse.org home: links: - text: Roadmap/Milestones - href: https://github.com/HenrikBengtsson/<%= pkg %>/milestones + href: https://github.com/<%= gsub("(^.*:|[.]git$)", "", subset(gert::git_remote_list(), name == "origin")$url) %>/milestones - text: The Futureverse Project href: https://www.futureverse.org/ - text: Futureverse User Forum @@ -33,7 +35,7 @@ navbar: text: Packages menu: <% for (name in names(urls)) { %> - - text: <%= name %> <% if (name %in% pkgs_extra) { %>(experimental)<% } %> + - text: <%= name %> <% if (name %in% pkgs_extra) { %>(experimental)<% } else if (name %in% pkgs_backend) { %>(backend)<% } else if (name %in% pkgs_mapreduce) { %>(map-reduce)<% } %> href: <%= urls[name] %> <% } %> cran: From 6e7b2f477114b5567b56b15e6df00a564d45b4dc Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 20:05:20 -0700 Subject: [PATCH 08/32] BUG FIX: handlers(new_handlers) would return NULL, instead of list(), if there were no prior handlers set [#169] --- DESCRIPTION | 2 +- NEWS.md | 5 ++++- R/handlers.R | 6 +++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9f98fe6..d1f4377 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9002 +Version: 0.14.0-9003 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index 4bc4167..95b9d70 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,9 @@ # Version (development version) - * ... +## Bug Fixes + + * `handlers(new_handlers)` would return `NULL`, instead of `list()`, + if there were no prior handlers set. # Version 0.14.0 [2023-08-10] diff --git a/R/handlers.R b/R/handlers.R index 96a6087..bb81959 100644 --- a/R/handlers.R +++ b/R/handlers.R @@ -109,6 +109,7 @@ handlers <- function(..., append = FALSE, on_missing = c("error", "warning", "ig } handlers <- list() + names <- names(args) for (kk in seq_along(args)) { handler <- args[[kk]] @@ -164,5 +165,8 @@ handlers <- function(..., append = FALSE, on_missing = c("error", "warning", "ig if (length(current) > 0L) handlers <- c(current, handlers) } - invisible(options(progressr.handlers = handlers)[[1]]) + old_handlers <- options(progressr.handlers = handlers)[[1]] + if (is.null(old_handlers)) old_handlers <- list() + + invisible(old_handlers) } From 13c63fdf1543cf4cdedaa131eceb0fd99ce87ea4 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 21:23:31 -0700 Subject: [PATCH 09/32] Update NEWS per #172 bug fix --- DESCRIPTION | 2 +- NEWS.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index d1f4377..9846f94 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9003 +Version: 0.14.0-9004 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index 95b9d70..ac9b5c1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,6 +5,9 @@ * `handlers(new_handlers)` would return `NULL`, instead of `list()`, if there were no prior handlers set. + * `handler_cli(..., format_done = "...", clear = TRUE)` would not + render the `format_done` message, if set. + # Version 0.14.0 [2023-08-10] From 55c7c0265ee8c02bb737e633b88c130f30938828 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 21:32:00 -0700 Subject: [PATCH 10/32] GA: modernize --- .github/workflows/R-CMD-check.yaml | 98 ++++++++++++++---------------- 1 file changed, 44 insertions(+), 54 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 67886d4..4c03dad 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -6,7 +6,7 @@ jobs: R-CMD-check: if: "! contains(github.event.head_commit.message, '[ci skip]')" - timeout-minutes: 45 + timeout-minutes: 30 runs-on: ${{ matrix.config.os }} @@ -20,20 +20,21 @@ jobs: - {os: windows-latest, r: 'release' } # - {os: macOS-latest, r: 'devel' } - {os: macOS-latest, r: 'release' } - - {os: ubuntu-22.04, r: 'devel' } - - {os: ubuntu-22.04, r: 'release' } - - {os: ubuntu-22.04, r: 'oldrel' } - - {os: ubuntu-22.04, r: 'oldrel-1' } - - {os: ubuntu-22.04, r: 'oldrel-2' } - - {os: ubuntu-22.04, r: '3.6' } - - {os: ubuntu-22.04, r: 'release' , language: ko, label: ko } - - {os: ubuntu-22.04, r: 'release' , language: zh_CN, label: zh_CN } - - {os: ubuntu-22.04, r: 'release' , language: zh_TW, label: zh_TW } - + - {os: ubuntu-latest, r: 'devel' } + - {os: ubuntu-latest, r: 'release' } + - {os: ubuntu-latest, r: 'oldrel' } + - {os: ubuntu-latest, r: 'oldrel-1' } + - {os: ubuntu-latest, r: 'oldrel-2' } + - {os: ubuntu-latest, r: '3.6' } + - {os: ubuntu-latest, r: 'release' , language: ko, label: ko } + - {os: ubuntu-latest, r: 'release' , language: zh_CN, label: zh_CN } + - {os: ubuntu-latest, r: 'release' , language: zh_TW, label: zh_TW } env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest + R_KEEP_PKG_SOURCE: yes R_REMOTES_NO_ERRORS_FROM_WARNINGS: true + ## Test in other locale (optional) + LANGUAGE: ${{ matrix.config.language }} ## R CMD check _R_CHECK_CRAN_INCOMING_: false _R_CHECK_LENGTH_1_CONDITION_: true @@ -41,10 +42,9 @@ jobs: _R_CHECK_MATRIX_DATA_: true _R_CHECK_SUGGESTS_ONLY_: true _R_CHECK_THINGS_IN_TEMP_DIR_: true - RCMDCHECK_ERROR_ON: note - ## Test in other locale (optional) - LANGUAGE: ${{ matrix.config.language }} - + ## R (>= 4.4.0) Note, no trailing underscore (sic!) + _R_COMPARE_LANG_OBJECTS: eqonly + steps: - uses: actions/checkout@v4 @@ -53,43 +53,13 @@ jobs: - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + use-public-rspm: true - - name: Query R package dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} - - - name: Cache R packages - if: runner.os != 'Windows' - uses: actions/cache@v3 + - uses: r-lib/actions/setup-r-dependencies@v2 with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install R package system dependencies (Linux) - if: runner.os == 'Linux' - env: - RHUB_PLATFORM: linux-x86_64-ubuntu-gcc - run: | - Rscript -e "remotes::install_github('r-hub/sysreqs')" - sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo -s eval "$sysreqs" - sudo apt install -y libcurl4-openssl-dev - - - name: Install R package dependencies - run: | - remotes::install_deps(dependencies = TRUE) - install.packages(".", repos = NULL, type = "source") ## self vignette engine - shell: Rscript {0} - - - name: Install 'rcmdcheck' - run: | - remotes::install_cran("rcmdcheck") - library(rcmdcheck) ## triggers an error, if installation failed - shell: Rscript {0} + extra-packages: any::rcmdcheck + needs: check - name: Session info run: | @@ -97,15 +67,35 @@ jobs: capabilities() pkgs <- installed.packages()[, "Package"] sessioninfo::session_info(pkgs, include_base = TRUE) + ## Verify LANGUAGE settings by generating a translatable error + cat(sprintf("LANGUAGE=%s\n", sQuote(Sys.getenv("LANGUAGE")))) + cat(sprintf("locales: %s\n", sQuote(Sys.getlocale()))) + tryCatch(log("a"), error = conditionMessage) shell: Rscript {0} - - name: Check - run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", if (.Platform$OS.type == "windows" && getRversion() >= "4.2.0") "--no-multiarch"), check_dir = "check") + - name: Check (!Windows) + if: runner.os != 'Windows' + run: | + rcmdcheck::rcmdcheck( + args = "--as-cran", + error_on = "note", + check_dir = "check" + ) + shell: Rscript {0} + + - name: Check (Windows) + if: runner.os == 'Windows' + run: | + rcmdcheck::rcmdcheck( + args = c("--no-manual", "--as-cran"), + error_on = "note", + check_dir = "check" + ) shell: Rscript {0} - name: Upload check results if: failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-r${{ matrix.config.r }}-results path: check From 9f95656431deeec5422b0bf2c99578f704c16b3f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 21:39:49 -0700 Subject: [PATCH 11/32] GHA: modernize - take 2 --- .github/workflows/covr.yaml | 12 ++++--- .github/workflows/revdepcheck-top.yaml | 45 +++++++++++--------------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/.github/workflows/covr.yaml b/.github/workflows/covr.yaml index 03da23e..302000e 100644 --- a/.github/workflows/covr.yaml +++ b/.github/workflows/covr.yaml @@ -6,9 +6,9 @@ jobs: covr: if: "! contains(github.event.head_commit.message, '[ci skip]')" - timeout-minutes: 30 + timeout-minutes: 10 - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: covr @@ -20,13 +20,15 @@ jobs: RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest R_REMOTES_NO_ERRORS_FROM_WARNINGS: true ## R CMD check + _R_CHECK_CRAN_INCOMING_: false _R_CHECK_LENGTH_1_CONDITION_: true _R_CHECK_LENGTH_1_LOGIC2_: true _R_CHECK_MATRIX_DATA_: true - _R_CHECK_CRAN_INCOMING_: false + _R_CHECK_SUGGESTS_ONLY_: true + _R_CHECK_THINGS_IN_TEMP_DIR_: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - uses: r-lib/actions/setup-pandoc@v2 @@ -42,7 +44,7 @@ jobs: shell: Rscript {0} - name: Cache R packages - uses: actions/cache@v3 + uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} diff --git a/.github/workflows/revdepcheck-top.yaml b/.github/workflows/revdepcheck-top.yaml index 9675eb1..ec5984f 100644 --- a/.github/workflows/revdepcheck-top.yaml +++ b/.github/workflows/revdepcheck-top.yaml @@ -8,7 +8,7 @@ jobs: timeout-minutes: 30 - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: ${{ matrix.config.pkg }} (${{ matrix.config.r }}) @@ -23,7 +23,6 @@ jobs: # - { r: "release", pkg: "gtfs2gps" } env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest R_REMOTES_NO_ERRORS_FROM_WARNINGS: true ## R CMD check _R_CHECK_LENGTH_1_CONDITION_: true @@ -36,39 +35,31 @@ jobs: - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-tinytex@v2 + + - name: Install system dependencies (Linux) + if: runner.os == 'Linux' + run: sudo apt-get install -y tidy + - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} + use-public-rspm: true - - name: Query dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} - - - name: Cache R packages - if: runner.os != 'Windows' - uses: actions/cache@v3 + - uses: r-lib/actions/setup-r-dependencies@v2 with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install system dependencies (Linux) - if: runner.os == 'Linux' - env: - RHUB_PLATFORM: linux-x86_64-ubuntu-gcc - run: | - Rscript -e "remotes::install_github('r-hub/sysreqs')" - sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo -s eval "$sysreqs" + extra-packages: | + any::rcmdcheck + any::remotes + any::sessioninfo + any::covr + needs: check - name: Install dependencies run: | remotes::install_deps(dependencies = TRUE) - remotes::install_cran("rcmdcheck") - remotes::install_cran("${{ matrix.config.pkg }}", dependencies=TRUE) + install.packages(".", repos=NULL, type="source") + install.packages("${{ matrix.config.pkg }}", dependencies=TRUE) shell: Rscript {0} - name: Session info @@ -89,4 +80,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{ runner.os }}-r${{ matrix.config.r }}-revdep${{ matrix.config.pkg }}-results - path: check + path: ${{ matrix.config.pkg }}.Rcheck From cda2240a55dfe3bb34c7ee8aa8dc4f68de9e6094 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 21:52:53 -0700 Subject: [PATCH 12/32] GHA: modernize - take 3 --- .github/workflows/R-CMD-check.yaml | 4 ++++ .github/workflows/revdepcheck-top.yaml | 21 ++++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 4c03dad..a818dcb 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -61,6 +61,10 @@ jobs: extra-packages: any::rcmdcheck needs: check + - name: Install itself (to build vignettes) + install.packages(".", repos=NULL, type="source") + shell: Rscript {0} + - name: Session info run: | options(width = 100) diff --git a/.github/workflows/revdepcheck-top.yaml b/.github/workflows/revdepcheck-top.yaml index ec5984f..5188f3c 100644 --- a/.github/workflows/revdepcheck-top.yaml +++ b/.github/workflows/revdepcheck-top.yaml @@ -16,11 +16,22 @@ jobs: fail-fast: false matrix: config: - - { r: "release", pkg: "cSEM" } - - { r: "release", pkg: "dipsaus" } - - { r: "release", pkg: "EFAtools" } - - { r: "release", pkg: "fxTWAPLS" } -# - { r: "release", pkg: "gtfs2gps" } + - { r: "release", pkg: "cSEM" } + - { r: "release", pkg: "dipsaus" } + - { r: "release", pkg: "EFAtools" } + - { r: "release", pkg: "EGAnet" } + - { r: "release", pkg: "elevatr" } + - { r: "release", pkg: "fabletools" } + - { r: "release", pkg: "fxTWAPLS" } + - { r: "release", pkg: "lava" } + - { r: "release", pkg: "nflfastR" } + - { r: "release", pkg: "poppr" } +# - { r: "release", pkg: "Seurat" } + - { r: "release", pkg: "SimDesign" } + - { r: "release", pkg: "tidySEM" } + - { r: "release", pkg: "tsdistributions" } + - { r: "release", pkg: "tsgarch" } + env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_REMOTES_NO_ERRORS_FROM_WARNINGS: true From 7642e3a6dc64b9755042221115d48b40045ecb0e Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 21:54:32 -0700 Subject: [PATCH 13/32] GHA: modernize - take 4 --- .github/workflows/R-CMD-check.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index a818dcb..ccc97f6 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -62,6 +62,7 @@ jobs: needs: check - name: Install itself (to build vignettes) + run: | install.packages(".", repos=NULL, type="source") shell: Rscript {0} From daefa64f7bfe8a8cf96a116458a3a323ff06f532 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 22:06:43 -0700 Subject: [PATCH 14/32] GHA: modernize - take 6 --- .github/workflows/R-CMD-check.yaml | 6 ++++++ .github/workflows/revdepcheck-top.yaml | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index ccc97f6..54c4118 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -50,6 +50,12 @@ jobs: - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-tinytex@v2 + + - name: Install system dependencies (Linux) + if: runner.os == 'Linux' + run: sudo apt-get install -y tidy + - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} diff --git a/.github/workflows/revdepcheck-top.yaml b/.github/workflows/revdepcheck-top.yaml index 5188f3c..5beb897 100644 --- a/.github/workflows/revdepcheck-top.yaml +++ b/.github/workflows/revdepcheck-top.yaml @@ -20,15 +20,15 @@ jobs: - { r: "release", pkg: "dipsaus" } - { r: "release", pkg: "EFAtools" } - { r: "release", pkg: "EGAnet" } - - { r: "release", pkg: "elevatr" } +# - { r: "release", pkg: "elevatr" } ## libproj.so missing - { r: "release", pkg: "fabletools" } - { r: "release", pkg: "fxTWAPLS" } - - { r: "release", pkg: "lava" } - - { r: "release", pkg: "nflfastR" } - - { r: "release", pkg: "poppr" } +# - { r: "release", pkg: "lava" } ## req's Bioc pkgs +# - { r: "release", pkg: "nflfastR" } +# - { r: "release", pkg: "poppr" } ## fails to install # - { r: "release", pkg: "Seurat" } - { r: "release", pkg: "SimDesign" } - - { r: "release", pkg: "tidySEM" } +# - { r: "release", pkg: "tidySEM" } ## fails to install - { r: "release", pkg: "tsdistributions" } - { r: "release", pkg: "tsgarch" } From 2362df29203f5a8abfedcd7d79ce9305c8334c0f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Tue, 15 Oct 2024 22:12:24 -0700 Subject: [PATCH 15/32] GHA: modernize - take 7 --- .github/workflows/R-CMD-check.yaml | 3 ++- .github/workflows/revdepcheck-top.yaml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 54c4118..29c2cec 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -19,7 +19,8 @@ jobs: - {os: windows-latest, r: 'devel' } - {os: windows-latest, r: 'release' } # - {os: macOS-latest, r: 'devel' } - - {os: macOS-latest, r: 'release' } +# - {os: macOS-latest, r: 'release' } +# - {os: macOS-latest, r: 'oldrel' } - {os: ubuntu-latest, r: 'devel' } - {os: ubuntu-latest, r: 'release' } - {os: ubuntu-latest, r: 'oldrel' } diff --git a/.github/workflows/revdepcheck-top.yaml b/.github/workflows/revdepcheck-top.yaml index 5beb897..b10c775 100644 --- a/.github/workflows/revdepcheck-top.yaml +++ b/.github/workflows/revdepcheck-top.yaml @@ -19,7 +19,7 @@ jobs: - { r: "release", pkg: "cSEM" } - { r: "release", pkg: "dipsaus" } - { r: "release", pkg: "EFAtools" } - - { r: "release", pkg: "EGAnet" } +# - { r: "release", pkg: "EGAnet" } ## libglpk.so missing # - { r: "release", pkg: "elevatr" } ## libproj.so missing - { r: "release", pkg: "fabletools" } - { r: "release", pkg: "fxTWAPLS" } @@ -84,6 +84,7 @@ jobs: run: | url=$(Rscript -e "cat(remotes:::download_version_url('${{ matrix.config.pkg }}', version=NULL, repos='https://cloud.r-project.org', type='source'))") wget "$url" + R_PROGRESSR_ENABLE=true R CMD check --no-manual --as-cran "$(basename "$url")" - name: Upload check results From 9a8b43aab171a052dbf6872f45d797256ef58c4f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Fri, 18 Oct 2024 17:33:22 -0700 Subject: [PATCH 16/32] TESTS: Add explicit test for 'filesize' handler [#168] --- R/handler_filesize.R | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/R/handler_filesize.R b/R/handler_filesize.R index c5205a2..d422bbc 100644 --- a/R/handler_filesize.R +++ b/R/handler_filesize.R @@ -27,6 +27,15 @@ handler_filesize <- function(file = "default.progress", intrusiveness = getOption("progressr.intrusiveness.file", 5), target = "file", enable = getOption("progressr.enable", TRUE), ...) { reporter <- local({ set_file_size <- function(config, state, progression, message = state$message) { + ## Troubleshoot https://github.com/HenrikBengtsson/progressr/issues/168 + stop_if_not( + length(config$max_steps) == 1L, is.numeric(config$max_steps), + !is.na(config$max_steps), is.finite(config$max_steps), + config$max_steps >= 0, + length(state$step) == 1L, is.numeric(state$step), + !is.na(state$step), is.finite(state$step), state$step >= 0 + ) + ratio <- if (config$max_steps == 0) 1 else state$step / config$max_steps size <- round(100 * ratio) current_size <- file.size(file) From 7bf7d3d68403f7e6adeb6629f6d30272060ca835 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Fri, 18 Oct 2024 23:03:38 -0700 Subject: [PATCH 17/32] Add explicit 'filesize' test --- DESCRIPTION | 2 +- man/progressr.Rd | 13 +++++++++++++ tests/handler_filesize.R | 22 ++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 tests/handler_filesize.R diff --git a/DESCRIPTION b/DESCRIPTION index 9846f94..44f80ae 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -36,5 +36,5 @@ Suggests: VignetteBuilder: progressr URL: https://progressr.futureverse.org, https://github.com/HenrikBengtsson/progressr BugReports: https://github.com/HenrikBengtsson/progressr/issues -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.2 Roxygen: list(markdown = TRUE) diff --git a/man/progressr.Rd b/man/progressr.Rd index 201a7d0..48399a6 100644 --- a/man/progressr.Rd +++ b/man/progressr.Rd @@ -88,6 +88,19 @@ with_progress({ sqrt(x) }) }) +} +\seealso{ +Useful links: +\itemize{ + \item \url{https://progressr.futureverse.org} + \item \url{https://github.com/HenrikBengtsson/progressr} + \item Report bugs at \url{https://github.com/HenrikBengtsson/progressr/issues} +} + +} +\author{ +\strong{Maintainer}: Henrik Bengtsson \email{henrikb@braju.com} (\href{https://orcid.org/0000-0002-7579-5165}{ORCID}) [copyright holder] + } \keyword{iteration} \keyword{programming} diff --git a/tests/handler_filesize.R b/tests/handler_filesize.R new file mode 100644 index 0000000..a2664f4 --- /dev/null +++ b/tests/handler_filesize.R @@ -0,0 +1,22 @@ +source("incl/start.R") + +options(progressr.clear = FALSE) + +options(progressr.handlers = handler_filesize) + +message("handler_filesize() ...") + +for (x in list(integer(0), 1:10, 1L)) { + message("length(x): ", length(x)) + with_progress({ + progress <- progressor(along = x) + for (ii in x) { + Sys.sleep(getOption("progressr.demo.delay", 0.1)) + progress(message = sprintf("(%s)", paste(letters[1:ii], collapse=""))) + } + }) +} + +message("handler_filesize() ... done") + +source("incl/end.R") From b8efbd95d70b568655285b59694963a8493ce26f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Fri, 18 Oct 2024 23:15:41 -0700 Subject: [PATCH 18/32] Clarify that withProgressShiny() should be used for Shiny apps - not with_progress() [#171] --- DESCRIPTION | 2 +- R/with_progress.R | 6 +++++- man/with_progress.Rd | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 44f80ae..5896302 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9004 +Version: 0.14.0-9005 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/R/with_progress.R b/R/with_progress.R index 81e5096..168fc77 100644 --- a/R/with_progress.R +++ b/R/with_progress.R @@ -38,6 +38,9 @@ #' @example incl/with_progress.R #' #' @details +#' If you are writing a Shiny app, use the [withProgressShiny()] function +#' instead of this one. +#' #' If the global progression handler is enabled, it is temporarily disabled #' while evaluating the `expr` expression. #' @@ -69,7 +72,8 @@ #' will. #' #' @seealso -#' [base::withCallingHandlers()] +#' For Shiny apps, use [withProgressShiny()] instead of this function. +#' Internally, this function is built around [base::withCallingHandlers()]. #' #' @export with_progress <- function(expr, handlers = progressr::handlers(), cleanup = TRUE, delay_terminal = NULL, delay_stdout = NULL, delay_conditions = NULL, interrupts = getOption("progressr.interrupts", TRUE), interval = NULL, enable = NULL) { diff --git a/man/with_progress.Rd b/man/with_progress.Rd index 4ce826f..50eceeb 100644 --- a/man/with_progress.Rd +++ b/man/with_progress.Rd @@ -60,6 +60,9 @@ Returns the value of the expression. Report on Progress while Evaluating an R Expression } \details{ +If you are writing a Shiny app, use the \code{\link[=withProgressShiny]{withProgressShiny()}} function +instead of this one. + If the global progression handler is enabled, it is temporarily disabled while evaluating the \code{expr} expression. @@ -152,5 +155,6 @@ with_progress({ }) } \seealso{ -\code{\link[base:conditions]{base::withCallingHandlers()}} +For Shiny apps, use \code{\link[=withProgressShiny]{withProgressShiny()}} instead of this function. +Internally, this function is built around \code{\link[base:conditions]{base::withCallingHandlers()}}. } From 832ce4ef2d4f8dae533d934c679e46c630066e6d Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Fri, 18 Oct 2024 23:55:45 -0700 Subject: [PATCH 19/32] BUG FIX: withProgressShiny() could produce an 'if (config$max_steps == 0) : ... argument is of length zero' error [#165] --- DESCRIPTION | 2 +- NEWS.md | 3 +++ R/handler_shiny.R | 12 ++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 5896302..0272de9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9005 +Version: 0.14.0-9006 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index ac9b5c1..f8f00d7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,9 @@ ## Bug Fixes + * `withProgressShiny()` could produce an `if (config$max_steps == + 0) : ... argument is of length zero` error. + * `handlers(new_handlers)` would return `NULL`, instead of `list()`, if there were no prior handlers set. diff --git a/R/handler_shiny.R b/R/handler_shiny.R index 2032f09..44d8874 100644 --- a/R/handler_shiny.R +++ b/R/handler_shiny.R @@ -54,6 +54,12 @@ handler_shiny <- function(intrusiveness = getOption("progressr.intrusiveness.gui reporter <- local({ list( interrupt = function(config, state, progression, ...) { + if (!state$enabled) return() + stop_if_not( + length(config$max_steps) == 1L, is.numeric(config$max_steps), + !is.na(config$max_steps), is.finite(config$max_steps), + config$max_steps >= 0 + ) msg <- conditionMessage(progression) amount <- if (config$max_steps == 0) 1 else progression$amount / config$max_steps args <- c( @@ -64,6 +70,12 @@ handler_shiny <- function(intrusiveness = getOption("progressr.intrusiveness.gui }, update = function(config, state, progression, ...) { + if (!state$enabled) return() + stop_if_not( + length(config$max_steps) == 1L, is.numeric(config$max_steps), + !is.na(config$max_steps), is.finite(config$max_steps), + config$max_steps >= 0 + ) amount <- if (config$max_steps == 0) 1 else progression$amount / config$max_steps args <- c( list(amount = amount), From bd5f0026f60f2b5be537baeeeaf78aaef0519e85 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Sat, 19 Oct 2024 00:04:24 -0700 Subject: [PATCH 20/32] handler_filesize(): reporters return immediately if 'enabled' state is FALSE [#168] --- DESCRIPTION | 2 +- R/handler_filesize.R | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 0272de9..8163655 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9006 +Version: 0.14.0-9007 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/R/handler_filesize.R b/R/handler_filesize.R index d422bbc..c591f72 100644 --- a/R/handler_filesize.R +++ b/R/handler_filesize.R @@ -31,9 +31,7 @@ handler_filesize <- function(file = "default.progress", intrusiveness = getOptio stop_if_not( length(config$max_steps) == 1L, is.numeric(config$max_steps), !is.na(config$max_steps), is.finite(config$max_steps), - config$max_steps >= 0, - length(state$step) == 1L, is.numeric(state$step), - !is.na(state$step), is.finite(state$step), state$step >= 0 + config$max_steps >= 0 ) ratio <- if (config$max_steps == 0) 1 else state$step / config$max_steps @@ -63,19 +61,23 @@ handler_filesize <- function(file = "default.progress", intrusiveness = getOptio list( initiate = function(config, state, progression, ...) { + if (!state$enabled) return() set_file_size(config = config, state = state, progression = progression) }, interrupt = function(config, state, progression, ...) { + if (!state$enabled) return() msg <- conditionMessage(progression) set_file_size(config = config, state = state, progression = progression, message = msg) }, update = function(config, state, progression, ...) { + if (!state$enabled) return() set_file_size(config = config, state = state, progression = progression) }, finish = function(config, state, progression, ...) { + if (!state$enabled) return() if (config$clear) { if (file_test("-f", file)) file.remove(file) } else { From 6abbc553ddc6023450b5737e1be083ffd385e926 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Sat, 19 Oct 2024 14:32:32 -0700 Subject: [PATCH 21/32] CLEANUP: Extract internal, generic progress_notify() --- DESCRIPTION | 2 +- R/handler_notifier.R | 25 +++++++++++-------------- R/handler_rpushbullet.R | 26 ++++++++++---------------- R/notifiers.R | 10 ++++++++++ 4 files changed, 32 insertions(+), 31 deletions(-) create mode 100644 R/notifiers.R diff --git a/DESCRIPTION b/DESCRIPTION index 8163655..a4d36f9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9007 +Version: 0.14.0-9008 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/R/handler_notifier.R b/R/handler_notifier.R index 42d3b5f..9217c6f 100644 --- a/R/handler_notifier.R +++ b/R/handler_notifier.R @@ -23,17 +23,12 @@ handler_notifier <- function(intrusiveness = getOption("progressr.intrusiveness. if (!requireNamespace(pkg, quietly = TRUE)) { stop("Package 'notifier' is not available. See ?progressr::handler_notifier() for installation instructions") } - notifier_notify <- get("notify", mode = "function", envir = getNamespace(pkg)) + notifier_ <- get("notify", mode = "function", envir = getNamespace(pkg)) + notifier <- function(title = "R 'progressr' notification", message, ...) { + notifier_(msg = message, title = title) + } } else { - notifier_notify <- function(...) NULL - } - - notify <- function(step, max_steps, message) { - ratio <- if (max_steps == 0) 1 else step / max_steps - ratio <- sprintf("%.0f%%", 100*ratio) - msg <- paste(c("", message), collapse = "") - msg <- sprintf("[%s] %s", ratio, msg) - notifier_notify(msg) + notifier <- function(...) NULL } reporter <- local({ @@ -46,23 +41,25 @@ handler_notifier <- function(intrusiveness = getOption("progressr.intrusiveness. interrupt = function(config, state, progression, ...) { msg <- conditionMessage(progression) - notify(step = state$step, max_steps = config$max_steps, message = msg) + progress_notify(step = state$step, max_steps = config$max_steps, message = msg, notifier = notifier) }, initiate = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() - notify(step = state$step, max_steps = config$max_steps, message = state$message) + progress_notify(step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) }, update = function(config, state, progression, ...) { if (!state$enabled || progression$amount == 0 || config$times <= 2L) return() - notify(step = state$step, max_steps = config$max_steps, message = state$message) + progress_notify(step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) }, finish = function(config, state, progression, ...) { if (finished) return() if (!state$enabled) return() - if (state$delta > 0) notify(step = state$step, max_steps = config$max_steps, message = state$message) + if (state$delta > 0) { + progress_notify(step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + } finished <<- TRUE } ) diff --git a/R/handler_rpushbullet.R b/R/handler_rpushbullet.R index 5aa90a2..938bf2c 100644 --- a/R/handler_rpushbullet.R +++ b/R/handler_rpushbullet.R @@ -31,26 +31,20 @@ handler_rpushbullet <- function(intrusiveness = getOption("progressr.intrusivene } } - notify <- function(step, max_steps, message) { - ratio <- if (max_steps == 0) 1 else step / max_steps - ratio <- sprintf("%.0f%%", 100*ratio) - msg <- paste(c("", message), collapse = "") + notifier <- function(title, message) { args <- list( - type = "note", + type = "note", title = title, - body = sprintf("[%s] %s", ratio, msg) + body = paste(c("", message), collapse = "") ) + if (!is.null(recipients)) args$recipients <- recipients if (!is.null(email)) args$email <- email if (!is.null(channel)) args$channel <- channel if (!is.null(apikey)) args$apikey <- apikey if (!is.null(device)) args$device <- device - - pbPost( - type = "note", - title = title, - body = sprintf("[%s] %s", ratio, msg) - ) + + do.call(pbPost, args = args) } reporter <- local({ @@ -63,23 +57,23 @@ handler_rpushbullet <- function(intrusiveness = getOption("progressr.intrusivene initiate = function(config, state, progression, ...) { if (!state$enabled || config$times == 1L) return() - notify(step = state$step, max_steps = config$max_steps, message = state$message) + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) }, interrupt = function(config, state, progression, ...) { msg <- conditionMessage(progression) - notify(step = state$step, max_steps = config$max_steps, message = msg) + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = msg, notifier = notifier) }, update = function(config, state, progression, ...) { if (!state$enabled || progression$amount == 0 || config$times <= 2L) return() - notify(step = state$step, max_steps = config$max_steps, message = state$message) + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) }, finish = function(config, state, progression, ...) { if (finished) return() if (!state$enabled) return() - if (state$delta > 0) notify(step = state$step, max_steps = config$max_steps, message = state$message) + if (state$delta > 0) progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) finished <<- TRUE } ) diff --git a/R/notifiers.R b/R/notifiers.R new file mode 100644 index 0000000..16b6af7 --- /dev/null +++ b/R/notifiers.R @@ -0,0 +1,10 @@ +progress_notify <- function(title = "R 'progressr' notification", message, step, max_steps, notifier) { + stop_if_not(is.function(notifier)) + + ratio <- if (max_steps == 0) 1 else step / max_steps + ratio <- sprintf("%.0f%%", 100*ratio) + msg <- paste(c("", message), collapse = "") + body <- sprintf("[%s] %s", ratio, msg) + + notifier(title = title, message = body) +} ## progress_notify() From fa1d2860eb9cf717c557ba541a735981fd0392f8 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Sat, 19 Oct 2024 15:08:20 -0700 Subject: [PATCH 22/32] handler_notifier(): make sure to use identical internal functions --- R/handler_notifier.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/handler_notifier.R b/R/handler_notifier.R index 9217c6f..b858ffb 100644 --- a/R/handler_notifier.R +++ b/R/handler_notifier.R @@ -28,7 +28,7 @@ handler_notifier <- function(intrusiveness = getOption("progressr.intrusiveness. notifier_(msg = message, title = title) } } else { - notifier <- function(...) NULL + notifier <- function(title = "R 'progressr' notification", message, ...) NULL } reporter <- local({ From 5a606541cfdefa4a0d53b707f477fe63552833f3 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Sat, 19 Oct 2024 15:04:18 -0700 Subject: [PATCH 23/32] Add handler_ntfy() [#19] --- DESCRIPTION | 2 +- NAMESPACE | 1 + R/handler_nfty.R | 75 +++++++++++++++++++++++++++++++++++++++++++++ incl/handler_ntfy.R | 8 +++++ man/handler_ntfy.Rd | 45 +++++++++++++++++++++++++++ 5 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 R/handler_nfty.R create mode 100644 incl/handler_ntfy.R create mode 100644 man/handler_ntfy.Rd diff --git a/DESCRIPTION b/DESCRIPTION index a4d36f9..5b28791 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9008 +Version: 0.14.0-9009 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NAMESPACE b/NAMESPACE index c859390..96ee9be 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -11,6 +11,7 @@ export(handler_debug) export(handler_filesize) export(handler_newline) export(handler_notifier) +export(handler_ntfy) export(handler_pbcol) export(handler_pbmcapply) export(handler_progress) diff --git a/R/handler_nfty.R b/R/handler_nfty.R new file mode 100644 index 0000000..77cabec --- /dev/null +++ b/R/handler_nfty.R @@ -0,0 +1,75 @@ +#' Progression Handler: Progress Reported via the Ntfy.sh Messaging Service +#' +#' A progression handler for `ntfy_send()` of the \pkg{ntfy} package, +#' which sends notifications via the framework. +#' +#' @inheritParams make_progression_handler +#' @inheritParams ntfy::ntfy_send +#' +#' @param \ldots Additional arguments passed to [make_progression_handler()]. +#' +#' @example incl/handler_ntfy.R +#' +#' @section Requirements: +#' This progression handler requires the \pkg{ntfy} package, which is only +#' available from . +#' +#' @keywords internal +#' @export +handler_ntfy <- function(intrusiveness = getOption("progressr.intrusiveness.ntfy", 5), target = "gui", ..., title = "Progress update from R") { + ## Used for package testing purposes only when we want to perform + ## everything except the last part where the backend is called + ntfy_send <- function(...) NULL + if (!is_fake("handler_ntfy")) { + pkg <- "ntfy" + if (!requireNamespace(pkg, quietly = TRUE)) { + stop("Package 'ntfy' is not available. See ?progressr::handler_ntfy() for installation instructions") + } + ntfy_send <- get("ntfy_send", mode = "function", envir = getNamespace(pkg)) + } + + notifier <- function(title, message) { + args <- list( + message = message, + title = title + ) + + do.call(ntfy_send, args = args) + } + + reporter <- local({ + finished <- FALSE + + list( + reset = function(...) { + finished <<- FALSE + }, + + initiate = function(config, state, progression, ...) { + if (!state$enabled || config$times == 1L) return() + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + }, + + interrupt = function(config, state, progression, ...) { + msg <- conditionMessage(progression) + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = msg, notifier = notifier) + }, + + update = function(config, state, progression, ...) { + if (!state$enabled || progression$amount == 0 || config$times <= 2L) return() + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + }, + + finish = function(config, state, progression, ...) { + if (finished) return() + if (!state$enabled) return() + if (state$delta > 0) progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + finished <<- TRUE + } + ) + }) + + make_progression_handler("ntfy", reporter, intrusiveness = intrusiveness, target = target, ...) +} + + diff --git a/incl/handler_ntfy.R b/incl/handler_ntfy.R new file mode 100644 index 0000000..b667f87 --- /dev/null +++ b/incl/handler_ntfy.R @@ -0,0 +1,8 @@ +pkg <- "ntfy" +if (requireNamespace(pkg, quietly = TRUE)) { + + handlers("ntfy") + with_progress({ y <- slow_sum(1:10) }) + print(y) + +} diff --git a/man/handler_ntfy.Rd b/man/handler_ntfy.Rd new file mode 100644 index 0000000..3961862 --- /dev/null +++ b/man/handler_ntfy.Rd @@ -0,0 +1,45 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/handler_nfty.R +\name{handler_ntfy} +\alias{handler_ntfy} +\title{Progression Handler: Progress Reported via the Ntfy.sh Messaging Service} +\usage{ +handler_ntfy( + intrusiveness = getOption("progressr.intrusiveness.ntfy", 5), + target = "gui", + ..., + title = "Progress update from R" +) +} +\arguments{ +\item{intrusiveness}{(numeric) A non-negative scalar on how intrusive +(disruptive) the reporter to the user.} + +\item{target}{(character vector) Specifies where progression updates are +rendered.} + +\item{title}{title of notification. See \url{https://docs.ntfy.sh/publish/#message-title}} + +\item{\ldots}{Additional arguments passed to \code{\link[=make_progression_handler]{make_progression_handler()}}.} +} +\description{ +A progression handler for \code{ntfy_send()} of the \pkg{ntfy} package, +which sends notifications via the \url{https://ntfy.sh} framework. +} +\section{Requirements}{ + +This progression handler requires the \pkg{ntfy} package, which is only +available from \url{https://github.com/jonocarroll/ntfy}. +} + +\examples{ +pkg <- "ntfy" +if (requireNamespace(pkg, quietly = TRUE)) { + + handlers("ntfy") + with_progress({ y <- slow_sum(1:10) }) + print(y) + +} +} +\keyword{internal} From e1fba8e685401e7944df176d0f31425c40a7f47c Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 00:33:46 -0700 Subject: [PATCH 24/32] Transfer GitHub repo HenrikBengtsson/progressr to futureverse/progressr --- .github/workflows/R-CMD-check.yaml | 2 - .github/workflows/covr.yaml | 84 ---------------------------- .github/workflows/test-coverage.yaml | 56 +++++++++++++++++++ CONTRIBUTING.md | 4 +- DESCRIPTION | 6 +- R/handler_filesize.R | 2 +- README.md | 6 +- incl/OVERVIEW.md | 2 +- pkgdown/_pkgdown.yml | 2 +- vignettes/progressr-intro.md | 2 +- 10 files changed, 68 insertions(+), 98 deletions(-) delete mode 100644 .github/workflows/covr.yaml create mode 100644 .github/workflows/test-coverage.yaml diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 29c2cec..07c8c93 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -38,8 +38,6 @@ jobs: LANGUAGE: ${{ matrix.config.language }} ## R CMD check _R_CHECK_CRAN_INCOMING_: false - _R_CHECK_LENGTH_1_CONDITION_: true - _R_CHECK_LENGTH_1_LOGIC2_: true _R_CHECK_MATRIX_DATA_: true _R_CHECK_SUGGESTS_ONLY_: true _R_CHECK_THINGS_IN_TEMP_DIR_: true diff --git a/.github/workflows/covr.yaml b/.github/workflows/covr.yaml deleted file mode 100644 index 302000e..0000000 --- a/.github/workflows/covr.yaml +++ /dev/null @@ -1,84 +0,0 @@ -on: [push] - -name: covr - -jobs: - covr: - if: "! contains(github.event.head_commit.message, '[ci skip]')" - - timeout-minutes: 10 - - runs-on: ubuntu-latest - - name: covr - - strategy: - fail-fast: false - - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest - R_REMOTES_NO_ERRORS_FROM_WARNINGS: true - ## R CMD check - _R_CHECK_CRAN_INCOMING_: false - _R_CHECK_LENGTH_1_CONDITION_: true - _R_CHECK_LENGTH_1_LOGIC2_: true - _R_CHECK_MATRIX_DATA_: true - _R_CHECK_SUGGESTS_ONLY_: true - _R_CHECK_THINGS_IN_TEMP_DIR_: true - - steps: - - uses: actions/checkout@v3 - - - uses: r-lib/actions/setup-pandoc@v2 - - - uses: r-lib/actions/setup-r@v2 - with: - r-version: release - - - name: Query dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} - - - name: Cache R packages - uses: actions/cache@v2 - with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install system dependencies - env: - RHUB_PLATFORM: linux-x86_64-ubuntu-gcc - run: | - Rscript -e "remotes::install_github('r-hub/sysreqs')" - sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") - sudo -s eval "$sysreqs" - - - name: Install dependencies - run: | - install.packages(c("covr", "sessioninfo")) - remotes::install_deps(dependencies = TRUE) - install.packages(".", repos=NULL, type="source") - shell: Rscript {0} - - - name: Session info - run: | - options(width = 100) - pkgs <- installed.packages()[, "Package"] - sessioninfo::session_info(pkgs, include_base = TRUE) - shell: Rscript {0} - - - name: Test coverage - run: | - ## 1. Get 'Repository Upload Token' from Codecov: - ## https://app.codecov.io/gh///settings - ## 2. Set 'CODECOV_TOKEN' in GitHub Secrets: - ## https://github.com///settings/environments/ - coverage <- covr::package_coverage() - print(coverage) - covr::codecov(coverage = coverage, token="${{secrets.CODECOV_TOKEN}}") - shell: Rscript {0} diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml new file mode 100644 index 0000000..cd2c74a --- /dev/null +++ b/.github/workflows/test-coverage.yaml @@ -0,0 +1,56 @@ +on: [push] + +name: test-coverage.yaml + +permissions: read-all + +jobs: + test-coverage: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v4 + + - name: Assert CODECOV_TOKEN is set + run: | + if [[ -z "${{secrets.CODECOV_TOKEN}}" ]]; then + >&2 echo "::error::ERROR: 'secrets.CODECOV_TOKEN' not set" + exit 1 + fi + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::covr, any::xml2 + needs: coverage + + - name: Test coverage + run: | + cov <- covr::package_coverage( + quiet = FALSE, + clean = FALSE, + install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package") + ) + print(cov) + covr::to_cobertura(cov) + shell: Rscript {0} + + - uses: codecov/codecov-action@v4 + with: + fail_ci_if_error: ${{ github.event_name != 'pull_request' && true || false }} + file: ./cobertura.xml + plugin: noop + disable_search: true + token: ${{ secrets.CODECOV_TOKEN }} + + - name: Upload test results + if: failure() + uses: actions/upload-artifact@v4 + with: + name: coverage-test-failures + path: ${{ runner.temp }}/package diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b99a84d..71af02b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,8 @@ # Contributing to the 'progressr' package -This Git repository uses the [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model (the [`git flow`](https://github.com/petervanderdoes/gitflow-avh) extension is useful for this). The [`develop`](https://github.com/HenrikBengtsson/progressr/tree/develop) branch contains the latest contributions and other code that will appear in the next release, and the [`master`](https://github.com/HenrikBengtsson/progressr) branch contains the code of the latest release, which is exactly what is currently on [CRAN](https://cran.r-project.org/package=progressr). +This Git repository uses the [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model (the [`git flow`](https://github.com/petervanderdoes/gitflow-avh) extension is useful for this). The [`develop`](https://github.com/futureverse/progressr/tree/develop) branch contains the latest contributions and other code that will appear in the next release, and the [`master`](https://github.com/futureverse/progressr) branch contains the code of the latest release, which is exactly what is currently on [CRAN](https://cran.r-project.org/package=progressr). -Contributing to this package is easy. Just send a [pull request](https://help.github.com/articles/using-pull-requests/). When you send your PR, make sure `develop` is the destination branch on the [progressr repository](https://github.com/HenrikBengtsson/progressr). Your PR should pass `R CMD check --as-cran`, which will also be checked by GitHub Actions and when the PR is submitted. +Contributing to this package is easy. Just send a [pull request](https://help.github.com/articles/using-pull-requests/). When you send your PR, make sure `develop` is the destination branch on the [progressr repository](https://github.com/futureverse/progressr). Your PR should pass `R CMD check --as-cran`, which will also be checked by GitHub Actions and when the PR is submitted. We abide to the [Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) of Contributor Covenant. diff --git a/DESCRIPTION b/DESCRIPTION index a4d36f9..3aecdfe 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9008 +Version: 0.14.0-9009 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", @@ -34,7 +34,7 @@ Suggests: base64enc, tools VignetteBuilder: progressr -URL: https://progressr.futureverse.org, https://github.com/HenrikBengtsson/progressr -BugReports: https://github.com/HenrikBengtsson/progressr/issues +URL: https://progressr.futureverse.org, https://github.com/futureverse/progressr +BugReports: https://github.com/futureverse/progressr/issues RoxygenNote: 7.3.2 Roxygen: list(markdown = TRUE) diff --git a/R/handler_filesize.R b/R/handler_filesize.R index c591f72..4732597 100644 --- a/R/handler_filesize.R +++ b/R/handler_filesize.R @@ -27,7 +27,7 @@ handler_filesize <- function(file = "default.progress", intrusiveness = getOption("progressr.intrusiveness.file", 5), target = "file", enable = getOption("progressr.enable", TRUE), ...) { reporter <- local({ set_file_size <- function(config, state, progression, message = state$message) { - ## Troubleshoot https://github.com/HenrikBengtsson/progressr/issues/168 + ## Troubleshoot https://github.com/futureverse/progressr/issues/168 stop_if_not( length(config$max_steps) == 1L, is.numeric(config$max_steps), !is.na(config$max_steps), is.finite(config$max_steps), diff --git a/README.md b/README.md index e652358..fc361de 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-CRAN check status R CMD check status Top reverse-dependency checks status Coverage Status Life cycle: maturing +CRAN check status R CMD check status Top reverse-dependency checks status Coverage Status Life cycle: maturing
# progressr: An Inclusive, Unifying API for Progress Updates @@ -874,7 +874,7 @@ depends on it. The roadmap for developing the API is roughly: additional progression handlers For a more up-to-date view on what features might be added, see -. +. ## Appendix @@ -1054,7 +1054,7 @@ install.packages("progressr") To install the pre-release version that is available in Git branch `develop` on GitHub, use: ```r -remotes::install_github("HenrikBengtsson/progressr", ref="develop") +remotes::install_github("futureverse/progressr", ref="develop") ``` This will install the package from source. diff --git a/incl/OVERVIEW.md b/incl/OVERVIEW.md index 250fc60..4ca505a 100644 --- a/incl/OVERVIEW.md +++ b/incl/OVERVIEW.md @@ -866,7 +866,7 @@ depends on it. The roadmap for developing the API is roughly: additional progression handlers For a more up-to-date view on what features might be added, see -. +. ## Appendix diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index c7e7827..b27632a 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -3,7 +3,7 @@ url: https://progressr.futureverse.org home: links: - text: Roadmap/Milestones - href: https://github.com/HenrikBengtsson/progressr/milestones + href: https://github.com/futureverse/progressr/milestones - text: The Futureverse Project href: https://www.futureverse.org/ - text: Futureverse User Forum diff --git a/vignettes/progressr-intro.md b/vignettes/progressr-intro.md index 8fa9cb8..6fbd026 100644 --- a/vignettes/progressr-intro.md +++ b/vignettes/progressr-intro.md @@ -877,7 +877,7 @@ depends on it. The roadmap for developing the API is roughly: additional progression handlers For a more up-to-date view on what features might be added, see -. +. ## Appendix From e9ebce85d35e4f17ef0bd44ba65544cee8cf3c74 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Sat, 19 Oct 2024 15:04:18 -0700 Subject: [PATCH 25/32] Add handler_ntfy() [#19] --- NAMESPACE | 1 + R/handler_nfty.R | 75 +++++++++++++++++++++++++++++++++++++++++++++ incl/handler_ntfy.R | 8 +++++ man/handler_ntfy.Rd | 45 +++++++++++++++++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 R/handler_nfty.R create mode 100644 incl/handler_ntfy.R create mode 100644 man/handler_ntfy.Rd diff --git a/NAMESPACE b/NAMESPACE index c859390..96ee9be 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -11,6 +11,7 @@ export(handler_debug) export(handler_filesize) export(handler_newline) export(handler_notifier) +export(handler_ntfy) export(handler_pbcol) export(handler_pbmcapply) export(handler_progress) diff --git a/R/handler_nfty.R b/R/handler_nfty.R new file mode 100644 index 0000000..77cabec --- /dev/null +++ b/R/handler_nfty.R @@ -0,0 +1,75 @@ +#' Progression Handler: Progress Reported via the Ntfy.sh Messaging Service +#' +#' A progression handler for `ntfy_send()` of the \pkg{ntfy} package, +#' which sends notifications via the framework. +#' +#' @inheritParams make_progression_handler +#' @inheritParams ntfy::ntfy_send +#' +#' @param \ldots Additional arguments passed to [make_progression_handler()]. +#' +#' @example incl/handler_ntfy.R +#' +#' @section Requirements: +#' This progression handler requires the \pkg{ntfy} package, which is only +#' available from . +#' +#' @keywords internal +#' @export +handler_ntfy <- function(intrusiveness = getOption("progressr.intrusiveness.ntfy", 5), target = "gui", ..., title = "Progress update from R") { + ## Used for package testing purposes only when we want to perform + ## everything except the last part where the backend is called + ntfy_send <- function(...) NULL + if (!is_fake("handler_ntfy")) { + pkg <- "ntfy" + if (!requireNamespace(pkg, quietly = TRUE)) { + stop("Package 'ntfy' is not available. See ?progressr::handler_ntfy() for installation instructions") + } + ntfy_send <- get("ntfy_send", mode = "function", envir = getNamespace(pkg)) + } + + notifier <- function(title, message) { + args <- list( + message = message, + title = title + ) + + do.call(ntfy_send, args = args) + } + + reporter <- local({ + finished <- FALSE + + list( + reset = function(...) { + finished <<- FALSE + }, + + initiate = function(config, state, progression, ...) { + if (!state$enabled || config$times == 1L) return() + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + }, + + interrupt = function(config, state, progression, ...) { + msg <- conditionMessage(progression) + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = msg, notifier = notifier) + }, + + update = function(config, state, progression, ...) { + if (!state$enabled || progression$amount == 0 || config$times <= 2L) return() + progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + }, + + finish = function(config, state, progression, ...) { + if (finished) return() + if (!state$enabled) return() + if (state$delta > 0) progress_notify(title = title, step = state$step, max_steps = config$max_steps, message = state$message, notifier = notifier) + finished <<- TRUE + } + ) + }) + + make_progression_handler("ntfy", reporter, intrusiveness = intrusiveness, target = target, ...) +} + + diff --git a/incl/handler_ntfy.R b/incl/handler_ntfy.R new file mode 100644 index 0000000..b667f87 --- /dev/null +++ b/incl/handler_ntfy.R @@ -0,0 +1,8 @@ +pkg <- "ntfy" +if (requireNamespace(pkg, quietly = TRUE)) { + + handlers("ntfy") + with_progress({ y <- slow_sum(1:10) }) + print(y) + +} diff --git a/man/handler_ntfy.Rd b/man/handler_ntfy.Rd new file mode 100644 index 0000000..3961862 --- /dev/null +++ b/man/handler_ntfy.Rd @@ -0,0 +1,45 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/handler_nfty.R +\name{handler_ntfy} +\alias{handler_ntfy} +\title{Progression Handler: Progress Reported via the Ntfy.sh Messaging Service} +\usage{ +handler_ntfy( + intrusiveness = getOption("progressr.intrusiveness.ntfy", 5), + target = "gui", + ..., + title = "Progress update from R" +) +} +\arguments{ +\item{intrusiveness}{(numeric) A non-negative scalar on how intrusive +(disruptive) the reporter to the user.} + +\item{target}{(character vector) Specifies where progression updates are +rendered.} + +\item{title}{title of notification. See \url{https://docs.ntfy.sh/publish/#message-title}} + +\item{\ldots}{Additional arguments passed to \code{\link[=make_progression_handler]{make_progression_handler()}}.} +} +\description{ +A progression handler for \code{ntfy_send()} of the \pkg{ntfy} package, +which sends notifications via the \url{https://ntfy.sh} framework. +} +\section{Requirements}{ + +This progression handler requires the \pkg{ntfy} package, which is only +available from \url{https://github.com/jonocarroll/ntfy}. +} + +\examples{ +pkg <- "ntfy" +if (requireNamespace(pkg, quietly = TRUE)) { + + handlers("ntfy") + with_progress({ y <- slow_sum(1:10) }) + print(y) + +} +} +\keyword{internal} From 80e53f1b358288961c05bed14a07398fdce6596c Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 10:44:50 -0700 Subject: [PATCH 26/32] refresh help pages and anims --- man/figures/handler_cli-default.svg | 2 +- man/figures/handler_cli-format-1.svg | 2 +- man/figures/handler_pbcol-adjust-mid.svg | 2 +- man/figures/handler_pbcol-adjust-right-complete.svg | 2 +- man/figures/handler_pbcol-default.svg | 2 +- man/figures/handler_pbmcapply-default.svg | 2 +- man/figures/handler_progress-complete.svg | 2 +- man/figures/handler_progress-default.svg | 2 +- man/figures/handler_progress-format-1.svg | 2 +- man/figures/handler_progress-format-2.svg | 2 +- man/figures/handler_txtprogressbar-char-ansi.svg | 2 +- man/figures/handler_txtprogressbar-char-width-2.svg | 2 +- man/figures/handler_txtprogressbar-char.svg | 2 +- man/figures/handler_txtprogressbar-default.svg | 2 +- man/figures/handler_txtprogressbar-style-1.svg | 2 +- man/figures/handler_txtprogressbar-style-3.svg | 2 +- man/progressr.Rd | 4 ++-- 17 files changed, 18 insertions(+), 18 deletions(-) diff --git a/man/figures/handler_cli-default.svg b/man/figures/handler_cli-default.svg index 654d936..1d6beaa 100644 --- a/man/figures/handler_cli-default.svg +++ b/man/figures/handler_cli-default.svg @@ -1 +1 @@ -■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■100%|P:Adding25ETA:0s■■4%|P:Adding1ETA:3s■■■8%|P:Adding2ETA:4s■■■■■12%|P:Adding3ETA:4s■■■■■■16%|P:Adding4ETA:3s■■■■■■■20%|P:Adding5ETA:3s■■■■■■■■24%|P:Adding6ETA:3s■■■■■■■■■28%|P:Adding7ETA:3s■■■■■■■■■■■32%|P:Adding8ETA:3s■■■■■■■■■■■■36%|P:Adding9ETA:3s■■■■■■■■■■■■■40%|P:Adding10ETA:3s■■■■■■■■■■■■■■44%|P:Adding11ETA:2s■■■■■■■■■■■■■■■48%|P:Adding12ETA:2s■■■■■■■■■■■■■■■■■52%|P:Adding13ETA:2s■■■■■■■■■■■■■■■■■■56%|P:Adding14ETA:2s■■■■■■■■■■■■■■■■■■■60%|P:Adding15ETA:2s■■■■■■■■■■■■■■■■■■■■64%|P:Adding16ETA:2s■■■■■■■■■■■■■■■■■■■■■68%|P:Adding17ETA:1s■■■■■■■■■■■■■■■■■■■■■■■72%|P:Adding18ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■76%|P:Adding19ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■80%|P:Adding20ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■84%|P:Adding21ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■■88%|P:Adding22ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■■■■92%|P:Adding23ETA:0s■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■96%|P:Adding24ETA:0s \ No newline at end of file +■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■100%|P:Adding25ETA:0s■■4%|P:Adding1ETA:3s■■■8%|P:Adding2ETA:4s■■■■■12%|P:Adding3ETA:4s■■■■■■16%|P:Adding4ETA:3s■■■■■■■20%|P:Adding5ETA:3s■■■■■■■■24%|P:Adding6ETA:3s■■■■■■■■■28%|P:Adding7ETA:3s■■■■■■■■■■■32%|P:Adding8ETA:3s■■■■■■■■■■■■36%|P:Adding9ETA:3s■■■■■■■■■■■■■40%|P:Adding10ETA:2s■■■■■■■■■■■■■■44%|P:Adding11ETA:2s■■■■■■■■■■■■■■■48%|P:Adding12ETA:2s■■■■■■■■■■■■■■■■■52%|P:Adding13ETA:2s■■■■■■■■■■■■■■■■■■56%|P:Adding14ETA:2s■■■■■■■■■■■■■■■■■■■60%|P:Adding15ETA:2s■■■■■■■■■■■■■■■■■■■■64%|P:Adding16ETA:2s■■■■■■■■■■■■■■■■■■■■■68%|P:Adding17ETA:1s■■■■■■■■■■■■■■■■■■■■■■■72%|P:Adding18ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■76%|P:Adding19ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■80%|P:Adding20ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■84%|P:Adding21ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■■88%|P:Adding22ETA:1s■■■■■■■■■■■■■■■■■■■■■■■■■■■■■92%|P:Adding23ETA:0s■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■96%|P:Adding24ETA:0s \ No newline at end of file diff --git a/man/figures/handler_cli-format-1.svg b/man/figures/handler_cli-format-1.svg index 5a50896..4834b44 100644 --- a/man/figures/handler_cli-format-1.svg +++ b/man/figures/handler_cli-format-1.svg @@ -1 +1 @@ -■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■25/25P:Adding25■■1/25P:Adding1■■■2/25P:Adding2■■■■■3/25P:Adding3■■■■■■4/25P:Adding4■■■■■■■5/25P:Adding5■■■■■■■■6/25P:Adding6■■■■■■■■■7/25P:Adding7■■■■■■■■■■■8/25P:Adding8■■■■■■■■■■■■9/25P:Adding9■■■■■■■■■■■■■10/25P:Adding10■■■■■■■■■■■■■■11/25P:Adding11■■■■■■■■■■■■■■■12/25P:Adding12■■■■■■■■■■■■■■■■■13/25P:Adding13■■■■■■■■■■■■■■■■■■14/25P:Adding14■■■■■■■■■■■■■■■■■■■15/25P:Adding15■■■■■■■■■■■■■■■■■■■■16/25P:Adding16■■■■■■■■■■■■■■■■■■■■■17/25P:Adding17■■■■■■■■■■■■■■■■■■■■■■■18/25P:Adding18■■■■■■■■■■■■■■■■■■■■■■■■19/25P:Adding19■■■■■■■■■■■■■■■■■■■■■■■■■20/25P:Adding20■■■■■■■■■■■■■■■■■■■■■■■■■■21/25P:Adding21■■■■■■■■■■■■■■■■■■■■■■■■■■■22/25P:Adding22■■■■■■■■■■■■■■■■■■■■■■■■■■■■■23/25P:Adding23■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■24/25P:Adding24■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■25/25P:Adding25 \ No newline at end of file +■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■25/25P:Adding25■■1/25P:Adding1■■■2/25P:Adding2■■■■■3/25P:Adding3■■■■■■4/25P:Adding4■■■■■■■5/25P:Adding5■■■■■■■■6/25P:Adding6■■■■■■■■■7/25P:Adding7■■■■■■■■■■■8/25P:Adding8■■■■■■■■■■■■9/25P:Adding9■■■■■■■■■■■■■10/25P:Adding10■■■■■■■■■■■■■■11/25P:Adding11■■■■■■■■■■■■■■■12/25P:Adding12■■■■■■■■■■■■■■■■■13/25P:Adding13■■■■■■■■■■■■■■■■■■14/25P:Adding14■■■■■■■■■■■■■■■■■■■15/25P:Adding15■■■■■■■■■■■■■■■■■■■■16/25P:Adding16■■■■■■■■■■■■■■■■■■■■■17/25P:Adding17■■■■■■■■■■■■■■■■■■■■■■■18/25P:Adding18■■■■■■■■■■■■■■■■■■■■■■■■19/25P:Adding19■■■■■■■■■■■■■■■■■■■■■■■■■20/25P:Adding20■■■■■■■■■■■■■■■■■■■■■■■■■■21/25P:Adding21■■■■■■■■■■■■■■■■■■■■■■■■■■■22/25P:Adding22■■■■■■■■■■■■■■■■■■■■■■■■■■■■■23/25P:Adding23■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■24/25P:Adding24■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■25/25P:Adding25 \ No newline at end of file diff --git a/man/figures/handler_pbcol-adjust-mid.svg b/man/figures/handler_pbcol-adjust-mid.svg index fd2449b..bd57c87 100644 --- a/man/figures/handler_pbcol-adjust-mid.svg +++ b/man/figures/handler_pbcol-adjust-mid.svg @@ -1 +1 @@ - 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file + 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file diff --git a/man/figures/handler_pbcol-adjust-right-complete.svg b/man/figures/handler_pbcol-adjust-right-complete.svg index 2879cde..b46e584 100644 --- a/man/figures/handler_pbcol-adjust-right-complete.svg +++ b/man/figures/handler_pbcol-adjust-right-complete.svg @@ -1 +1 @@ - 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file + 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file diff --git a/man/figures/handler_pbcol-default.svg b/man/figures/handler_pbcol-default.svg index c506fb6..dc2aedf 100644 --- a/man/figures/handler_pbcol-default.svg +++ b/man/figures/handler_pbcol-default.svg @@ -1 +1 @@ - 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file + 0%- 0%\ 0%| P: Adding 1 4%/ P: Adding 1 4%- P: Adding 1 4%\ P: Adding 1 4%| P: Adding 2 8%/ P: Adding 2 8%- P: Adding 2 8%\ P: Adding 2 8%| P: Adding 3 12%/ P: Adding 3 12%- P: Adding 3 12%\ P: Adding 3 12%| P: Adding 4 16%/ P: Adding 4 16%- P: Adding 4 16%\ P: Adding 4 16%| P: Adding 5 20%/ P: Adding 5 20%- P: Adding 5 20%\ P: Adding 5 20%| P: Adding 6 24%/ P: Adding 6 24%- P: Adding 6 24%\ P: Adding 6 24%| P: Adding 7 28%/ P: Adding 7 28%- P: Adding 7 28%\ P: Adding 7 28%| P: Adding 8 32%/ P: Adding 8 32%- P: Adding 8 32%\ P: Adding 8 32%| P: Adding 9 36%/ P: Adding 9 36%- P: Adding 9 36%\ P: Adding 9 36%| P: Adding 10 40%/ P: Adding 10 40%- P: Adding 10 40%\ P: Adding 10 40%| P: Adding 11 44%/ P: Adding 11 44%- P: Adding 11 44%\ P: Adding 11 44%| P: Adding 12 48%/ P: Adding 12 48%- P: Adding 12 48%\ P: Adding 12 48%| P: Adding 13 52%/ P: Adding 13 52%- P: Adding 13 52%\ P: Adding 13 52%| P: Adding 14 56%/ P: Adding 14 56%- P: Adding 14 56%\ P: Adding 14 56%| P: Adding 15 60%/ P: Adding 15 60%- P: Adding 15 60%\ P: Adding 15 60%| P: Adding 16 64%/ P: Adding 16 64%- P: Adding 16 64%\ P: Adding 16 64%| P: Adding 17 68%/ P: Adding 17 68%- P: Adding 17 68%\ P: Adding 17 68%| P: Adding 18 72%/ P: Adding 18 72%- P: Adding 18 72%\ P: Adding 18 72%| P: Adding 19 76%/ P: Adding 19 76%- P: Adding 19 76%\ P: Adding 19 76%| P: Adding 20 80%/ P: Adding 20 80%- P: Adding 20 80%\ P: Adding 20 80%| P: Adding 21 84%/ P: Adding 21 84%- P: Adding 21 84%\ P: Adding 21 84%| P: Adding 22 88%/ P: Adding 22 88%- P: Adding 22 88%\ P: Adding 22 88%| P: Adding 23 92%/ P: Adding 23 92%- P: Adding 23 92%\ P: Adding 23 92%| P: Adding 24 96%/ P: Adding 24 96%- P: Adding 24 96%\ P: Adding 24 96%| P: Adding 25 100%/ P: Adding 25 100% \ No newline at end of file diff --git a/man/figures/handler_pbmcapply-default.svg b/man/figures/handler_pbmcapply-default.svg index 14bc0eb..5b49ce6 100644 --- a/man/figures/handler_pbmcapply-default.svg +++ b/man/figures/handler_pbmcapply-default.svg @@ -1 +1 @@ -|=============================================|100%,Elapsed00:04||0%,ETANA|==|4%,ETA00:00|====|8%,ETA00:02|======|12%,ETA00:02|========|16%,ETA00:02|==========|20%,ETA00:03|============|24%,ETA00:02|==============|28%,ETA00:02|================|32%,ETA00:02|==================|36%,ETA00:02|====================|40%,ETA00:02|======================|44%,ETA00:02|========================|48%,ETA00:02|=========================|52%,ETA00:02|===========================|56%,ETA00:02|=============================|60%,ETA00:01|===============================|64%,ETA00:01|=================================|68%,ETA00:01|===================================|72%,ETA00:01|=====================================|76%,ETA00:01|=======================================|80%,ETA00:01|=========================================|84%,ETA00:01|===========================================|88%,ETA00:00|=============================================|92%,ETA00:00|===============================================|96%,ETA00:00 \ No newline at end of file +|=============================================|100%,Elapsed00:04||0%,ETANA|==|4%,ETA00:00|====|8%,ETA00:02|======|12%,ETA00:02|========|16%,ETA00:02|==========|20%,ETA00:02|============|24%,ETA00:02|==============|28%,ETA00:02|================|32%,ETA00:02|==================|36%,ETA00:02|====================|40%,ETA00:02|======================|44%,ETA00:02|========================|48%,ETA00:02|=========================|52%,ETA00:02|===========================|56%,ETA00:02|=============================|60%,ETA00:01|===============================|64%,ETA00:01|=================================|68%,ETA00:01|===================================|72%,ETA00:01|=====================================|76%,ETA00:01|=======================================|80%,ETA00:01|=========================================|84%,ETA00:01|===========================================|88%,ETA00:00|=============================================|92%,ETA00:00|===============================================|96%,ETA00:00 \ No newline at end of file diff --git a/man/figures/handler_progress-complete.svg b/man/figures/handler_progress-complete.svg index d5e731b..3ced31a 100644 --- a/man/figures/handler_progress-complete.svg +++ b/man/figures/handler_progress-complete.svg @@ -1 +1 @@ --[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[#>---------------------------------------------]4%P:Adding1-[#>---------------------------------------------]4%P:Adding1\[#>---------------------------------------------]4%P:Adding1|[#>---------------------------------------------]4%P:Adding1/[###>-------------------------------------------]8%P:Adding2-[###>-------------------------------------------]8%P:Adding2\[###>-------------------------------------------]8%P:Adding2|[###>-------------------------------------------]8%P:Adding2/[#####>-----------------------------------------]12%P:Adding3-[#####>-----------------------------------------]12%P:Adding3\[#####>-----------------------------------------]12%P:Adding3|[#####>-----------------------------------------]12%P:Adding3/[#######>---------------------------------------]16%P:Adding4-[#######>---------------------------------------]16%P:Adding4\[#######>---------------------------------------]16%P:Adding4|[#######>---------------------------------------]16%P:Adding4/[########>--------------------------------------]20%P:Adding5-[########>--------------------------------------]20%P:Adding5\[########>--------------------------------------]20%P:Adding5|[########>--------------------------------------]20%P:Adding5/[##########>------------------------------------]24%P:Adding6-[##########>------------------------------------]24%P:Adding6\[##########>------------------------------------]24%P:Adding6|[##########>------------------------------------]24%P:Adding6/[############>----------------------------------]28%P:Adding7-[############>----------------------------------]28%P:Adding7\[############>----------------------------------]28%P:Adding7|[############>----------------------------------]28%P:Adding7/[##############>--------------------------------]32%P:Adding8-[##############>--------------------------------]32%P:Adding8\[##############>--------------------------------]32%P:Adding8|[##############>--------------------------------]32%P:Adding8/[################>------------------------------]36%P:Adding9-[################>------------------------------]36%P:Adding9\[################>------------------------------]36%P:Adding9|[################>------------------------------]36%P:Adding9/[#################>----------------------------]40%P:Adding10-[#################>----------------------------]40%P:Adding10\[#################>----------------------------]40%P:Adding10|[#################>----------------------------]40%P:Adding10/[###################>--------------------------]44%P:Adding11-[###################>--------------------------]44%P:Adding11\[###################>--------------------------]44%P:Adding11|[###################>--------------------------]44%P:Adding11/[#####################>------------------------]48%P:Adding12-[#####################>------------------------]48%P:Adding12\[#####################>------------------------]48%P:Adding12|[#####################>------------------------]48%P:Adding12/[#######################>----------------------]52%P:Adding13-[#######################>----------------------]52%P:Adding13\[#######################>----------------------]52%P:Adding13|[#######################>----------------------]52%P:Adding13/[#########################>--------------------]56%P:Adding14-[#########################>--------------------]56%P:Adding14\[#########################>--------------------]56%P:Adding14|[#########################>--------------------]56%P:Adding14/[###########################>------------------]60%P:Adding15-[###########################>------------------]60%P:Adding15\[###########################>------------------]60%P:Adding15|[###########################>------------------]60%P:Adding15/[############################>-----------------]64%P:Adding16-[############################>-----------------]64%P:Adding16\[############################>-----------------]64%P:Adding16|[############################>-----------------]64%P:Adding16/[##############################>---------------]68%P:Adding17-[##############################>---------------]68%P:Adding17\[##############################>---------------]68%P:Adding17|[##############################>---------------]68%P:Adding17/[################################>-------------]72%P:Adding18-[################################>-------------]72%P:Adding18\[################################>-------------]72%P:Adding18|[################################>-------------]72%P:Adding18/[##################################>-----------]76%P:Adding19-[##################################>-----------]76%P:Adding19\[##################################>-----------]76%P:Adding19|[##################################>-----------]76%P:Adding19/[####################################>---------]80%P:Adding20-[####################################>---------]80%P:Adding20\[####################################>---------]80%P:Adding20|[####################################>---------]80%P:Adding20/[######################################>-------]84%P:Adding21-[######################################>-------]84%P:Adding21\[######################################>-------]84%P:Adding21|[######################################>-------]84%P:Adding21/[#######################################>------]88%P:Adding22-[#######################################>------]88%P:Adding22\[#######################################>------]88%P:Adding22|[#######################################>------]88%P:Adding22/[#########################################>----]92%P:Adding23-[#########################################>----]92%P:Adding23\[#########################################>----]92%P:Adding23|[#########################################>----]92%P:Adding23/[###########################################>--]96%P:Adding24-[###########################################>--]96%P:Adding24\[###########################################>--]96%P:Adding24|[###########################################>--]96%P:Adding24/[##############################################]100%P:Adding25 \ No newline at end of file +-[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[#>---------------------------------------------]4%P:Adding1-[#>---------------------------------------------]4%P:Adding1\[#>---------------------------------------------]4%P:Adding1|[#>---------------------------------------------]4%P:Adding1/[###>-------------------------------------------]8%P:Adding2-[###>-------------------------------------------]8%P:Adding2\[###>-------------------------------------------]8%P:Adding2|[###>-------------------------------------------]8%P:Adding2/[#####>-----------------------------------------]12%P:Adding3-[#####>-----------------------------------------]12%P:Adding3\[#####>-----------------------------------------]12%P:Adding3|[#####>-----------------------------------------]12%P:Adding3/[#######>---------------------------------------]16%P:Adding4-[#######>---------------------------------------]16%P:Adding4\[#######>---------------------------------------]16%P:Adding4|[#######>---------------------------------------]16%P:Adding4/[########>--------------------------------------]20%P:Adding5-[########>--------------------------------------]20%P:Adding5\[########>--------------------------------------]20%P:Adding5|[########>--------------------------------------]20%P:Adding5/[##########>------------------------------------]24%P:Adding6-[##########>------------------------------------]24%P:Adding6\[##########>------------------------------------]24%P:Adding6|[##########>------------------------------------]24%P:Adding6/[############>----------------------------------]28%P:Adding7-[############>----------------------------------]28%P:Adding7\[############>----------------------------------]28%P:Adding7|[############>----------------------------------]28%P:Adding7/[##############>--------------------------------]32%P:Adding8-[##############>--------------------------------]32%P:Adding8\[##############>--------------------------------]32%P:Adding8|[##############>--------------------------------]32%P:Adding8/[################>------------------------------]36%P:Adding9-[################>------------------------------]36%P:Adding9\[################>------------------------------]36%P:Adding9|[################>------------------------------]36%P:Adding9/[#################>----------------------------]40%P:Adding10-[#################>----------------------------]40%P:Adding10\[#################>----------------------------]40%P:Adding10|[#################>----------------------------]40%P:Adding10/[###################>--------------------------]44%P:Adding11-[###################>--------------------------]44%P:Adding11\[###################>--------------------------]44%P:Adding11|[###################>--------------------------]44%P:Adding11/[#####################>------------------------]48%P:Adding12-[#####################>------------------------]48%P:Adding12\[#####################>------------------------]48%P:Adding12|[#####################>------------------------]48%P:Adding12/[#######################>----------------------]52%P:Adding13-[#######################>----------------------]52%P:Adding13\[#######################>----------------------]52%P:Adding13|[#######################>----------------------]52%P:Adding13/[#########################>--------------------]56%P:Adding14-[#########################>--------------------]56%P:Adding14\[#########################>--------------------]56%P:Adding14|[#########################>--------------------]56%P:Adding14/[###########################>------------------]60%P:Adding15-[###########################>------------------]60%P:Adding15\[###########################>------------------]60%P:Adding15|[###########################>------------------]60%P:Adding15/[############################>-----------------]64%P:Adding16-[############################>-----------------]64%P:Adding16\[############################>-----------------]64%P:Adding16|[############################>-----------------]64%P:Adding16/[##############################>---------------]68%P:Adding17-[##############################>---------------]68%P:Adding17\[##############################>---------------]68%P:Adding17|[##############################>---------------]68%P:Adding17/[################################>-------------]72%P:Adding18-[################################>-------------]72%P:Adding18\[################################>-------------]72%P:Adding18|[################################>-------------]72%P:Adding18/[##################################>-----------]76%P:Adding19-[##################################>-----------]76%P:Adding19\[##################################>-----------]76%P:Adding19|[##################################>-----------]76%P:Adding19/[####################################>---------]80%P:Adding20-[####################################>---------]80%P:Adding20\[####################################>---------]80%P:Adding20|[####################################>---------]80%P:Adding20/[######################################>-------]84%P:Adding21-[######################################>-------]84%P:Adding21\[######################################>-------]84%P:Adding21|[######################################>-------]84%P:Adding21/[#######################################>------]88%P:Adding22-[#######################################>------]88%P:Adding22\[#######################################>------]88%P:Adding22|[#######################################>------]88%P:Adding22/[#########################################>----]92%P:Adding23-[#########################################>----]92%P:Adding23\[#########################################>----]92%P:Adding23|[#########################################>----]92%P:Adding23/[###########################################>--]96%P:Adding24-[###########################################>--]96%P:Adding24\[###########################################>--]96%P:Adding24|[###########################################>--]96%P:Adding24/[##############################################]100%P:Adding25 \ No newline at end of file diff --git a/man/figures/handler_progress-default.svg b/man/figures/handler_progress-default.svg index 7e670cb..5f2aa8a 100644 --- a/man/figures/handler_progress-default.svg +++ b/man/figures/handler_progress-default.svg @@ -1 +1 @@ --[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[=>---------------------------------------------]4%P:Adding1-[=>---------------------------------------------]4%P:Adding1\[=>---------------------------------------------]4%P:Adding1|[=>---------------------------------------------]4%P:Adding1/[===>-------------------------------------------]8%P:Adding2-[===>-------------------------------------------]8%P:Adding2\[===>-------------------------------------------]8%P:Adding2|[===>-------------------------------------------]8%P:Adding2/[=====>-----------------------------------------]12%P:Adding3-[=====>-----------------------------------------]12%P:Adding3\[=====>-----------------------------------------]12%P:Adding3|[=====>-----------------------------------------]12%P:Adding3/[=======>---------------------------------------]16%P:Adding4-[=======>---------------------------------------]16%P:Adding4\[=======>---------------------------------------]16%P:Adding4|[=======>---------------------------------------]16%P:Adding4/[========>--------------------------------------]20%P:Adding5-[========>--------------------------------------]20%P:Adding5\[========>--------------------------------------]20%P:Adding5|[========>--------------------------------------]20%P:Adding5/[==========>------------------------------------]24%P:Adding6-[==========>------------------------------------]24%P:Adding6\[==========>------------------------------------]24%P:Adding6|[==========>------------------------------------]24%P:Adding6/[============>----------------------------------]28%P:Adding7-[============>----------------------------------]28%P:Adding7\[============>----------------------------------]28%P:Adding7|[============>----------------------------------]28%P:Adding7/[==============>--------------------------------]32%P:Adding8-[==============>--------------------------------]32%P:Adding8\[==============>--------------------------------]32%P:Adding8|[==============>--------------------------------]32%P:Adding8/[================>------------------------------]36%P:Adding9-[================>------------------------------]36%P:Adding9\[================>------------------------------]36%P:Adding9|[================>------------------------------]36%P:Adding9/[=================>----------------------------]40%P:Adding10-[=================>----------------------------]40%P:Adding10\[=================>----------------------------]40%P:Adding10|[=================>----------------------------]40%P:Adding10/[===================>--------------------------]44%P:Adding11-[===================>--------------------------]44%P:Adding11\[===================>--------------------------]44%P:Adding11|[===================>--------------------------]44%P:Adding11/[=====================>------------------------]48%P:Adding12-[=====================>------------------------]48%P:Adding12\[=====================>------------------------]48%P:Adding12|[=====================>------------------------]48%P:Adding12/[=======================>----------------------]52%P:Adding13-[=======================>----------------------]52%P:Adding13\[=======================>----------------------]52%P:Adding13|[=======================>----------------------]52%P:Adding13/[=========================>--------------------]56%P:Adding14-[=========================>--------------------]56%P:Adding14\[=========================>--------------------]56%P:Adding14|[=========================>--------------------]56%P:Adding14/[===========================>------------------]60%P:Adding15-[===========================>------------------]60%P:Adding15\[===========================>------------------]60%P:Adding15|[===========================>------------------]60%P:Adding15/[============================>-----------------]64%P:Adding16-[============================>-----------------]64%P:Adding16\[============================>-----------------]64%P:Adding16|[============================>-----------------]64%P:Adding16/[==============================>---------------]68%P:Adding17-[==============================>---------------]68%P:Adding17\[==============================>---------------]68%P:Adding17|[==============================>---------------]68%P:Adding17/[================================>-------------]72%P:Adding18-[================================>-------------]72%P:Adding18\[================================>-------------]72%P:Adding18|[================================>-------------]72%P:Adding18/[==================================>-----------]76%P:Adding19-[==================================>-----------]76%P:Adding19\[==================================>-----------]76%P:Adding19|[==================================>-----------]76%P:Adding19/[====================================>---------]80%P:Adding20-[====================================>---------]80%P:Adding20\[====================================>---------]80%P:Adding20|[====================================>---------]80%P:Adding20/[======================================>-------]84%P:Adding21-[======================================>-------]84%P:Adding21\[======================================>-------]84%P:Adding21|[======================================>-------]84%P:Adding21/[=======================================>------]88%P:Adding22-[=======================================>------]88%P:Adding22\[=======================================>------]88%P:Adding22|[=======================================>------]88%P:Adding22/[=========================================>----]92%P:Adding23-[=========================================>----]92%P:Adding23\[=========================================>----]92%P:Adding23|[=========================================>----]92%P:Adding23/[===========================================>--]96%P:Adding24-[===========================================>--]96%P:Adding24\[===========================================>--]96%P:Adding24|[===========================================>--]96%P:Adding24/[==============================================]100%P:Adding25 \ No newline at end of file +-[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[=>---------------------------------------------]4%P:Adding1-[=>---------------------------------------------]4%P:Adding1\[=>---------------------------------------------]4%P:Adding1|[=>---------------------------------------------]4%P:Adding1/[===>-------------------------------------------]8%P:Adding2-[===>-------------------------------------------]8%P:Adding2\[===>-------------------------------------------]8%P:Adding2|[===>-------------------------------------------]8%P:Adding2/[=====>-----------------------------------------]12%P:Adding3-[=====>-----------------------------------------]12%P:Adding3\[=====>-----------------------------------------]12%P:Adding3|[=====>-----------------------------------------]12%P:Adding3/[=======>---------------------------------------]16%P:Adding4-[=======>---------------------------------------]16%P:Adding4\[=======>---------------------------------------]16%P:Adding4|[=======>---------------------------------------]16%P:Adding4/[========>--------------------------------------]20%P:Adding5-[========>--------------------------------------]20%P:Adding5\[========>--------------------------------------]20%P:Adding5|[========>--------------------------------------]20%P:Adding5/[==========>------------------------------------]24%P:Adding6-[==========>------------------------------------]24%P:Adding6\[==========>------------------------------------]24%P:Adding6|[==========>------------------------------------]24%P:Adding6/[============>----------------------------------]28%P:Adding7-[============>----------------------------------]28%P:Adding7\[============>----------------------------------]28%P:Adding7|[============>----------------------------------]28%P:Adding7/[==============>--------------------------------]32%P:Adding8-[==============>--------------------------------]32%P:Adding8\[==============>--------------------------------]32%P:Adding8|[==============>--------------------------------]32%P:Adding8/[================>------------------------------]36%P:Adding9-[================>------------------------------]36%P:Adding9\[================>------------------------------]36%P:Adding9|[================>------------------------------]36%P:Adding9/[=================>----------------------------]40%P:Adding10-[=================>----------------------------]40%P:Adding10\[=================>----------------------------]40%P:Adding10|[=================>----------------------------]40%P:Adding10/[===================>--------------------------]44%P:Adding11-[===================>--------------------------]44%P:Adding11\[===================>--------------------------]44%P:Adding11|[===================>--------------------------]44%P:Adding11/[=====================>------------------------]48%P:Adding12-[=====================>------------------------]48%P:Adding12\[=====================>------------------------]48%P:Adding12|[=====================>------------------------]48%P:Adding12/[=======================>----------------------]52%P:Adding13-[=======================>----------------------]52%P:Adding13\[=======================>----------------------]52%P:Adding13|[=======================>----------------------]52%P:Adding13/[=========================>--------------------]56%P:Adding14-[=========================>--------------------]56%P:Adding14\[=========================>--------------------]56%P:Adding14|[=========================>--------------------]56%P:Adding14/[===========================>------------------]60%P:Adding15-[===========================>------------------]60%P:Adding15\[===========================>------------------]60%P:Adding15|[===========================>------------------]60%P:Adding15/[============================>-----------------]64%P:Adding16-[============================>-----------------]64%P:Adding16\[============================>-----------------]64%P:Adding16|[============================>-----------------]64%P:Adding16/[==============================>---------------]68%P:Adding17-[==============================>---------------]68%P:Adding17\[==============================>---------------]68%P:Adding17|[==============================>---------------]68%P:Adding17/[================================>-------------]72%P:Adding18-[================================>-------------]72%P:Adding18\[================================>-------------]72%P:Adding18|[================================>-------------]72%P:Adding18/[==================================>-----------]76%P:Adding19-[==================================>-----------]76%P:Adding19\[==================================>-----------]76%P:Adding19|[==================================>-----------]76%P:Adding19/[====================================>---------]80%P:Adding20-[====================================>---------]80%P:Adding20\[====================================>---------]80%P:Adding20|[====================================>---------]80%P:Adding20/[======================================>-------]84%P:Adding21-[======================================>-------]84%P:Adding21\[======================================>-------]84%P:Adding21|[======================================>-------]84%P:Adding21/[=======================================>------]88%P:Adding22-[=======================================>------]88%P:Adding22\[=======================================>------]88%P:Adding22|[=======================================>------]88%P:Adding22/[=========================================>----]92%P:Adding23-[=========================================>----]92%P:Adding23\[=========================================>----]92%P:Adding23|[=========================================>----]92%P:Adding23/[===========================================>--]96%P:Adding24-[===========================================>--]96%P:Adding24\[===========================================>--]96%P:Adding24|[===========================================>--]96%P:Adding24/[==============================================]100%P:Adding25 \ No newline at end of file diff --git a/man/figures/handler_progress-format-1.svg b/man/figures/handler_progress-format-1.svg index 5917599..ddf4e33 100644 --- a/man/figures/handler_progress-format-1.svg +++ b/man/figures/handler_progress-format-1.svg @@ -1 +1 @@ --[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[=>---------------------------------------------]4%P:Adding1-[=>---------------------------------------------]4%P:Adding1\[=>---------------------------------------------]4%P:Adding1|[=>---------------------------------------------]4%P:Adding1/[===>-------------------------------------------]8%P:Adding2-[===>-------------------------------------------]8%P:Adding2\[===>-------------------------------------------]8%P:Adding2|[===>-------------------------------------------]8%P:Adding2/[=====>-----------------------------------------]12%P:Adding3-[=====>-----------------------------------------]12%P:Adding3\[=====>-----------------------------------------]12%P:Adding3|[=====>-----------------------------------------]12%P:Adding3/[=======>---------------------------------------]16%P:Adding4-[=======>---------------------------------------]16%P:Adding4\[=======>---------------------------------------]16%P:Adding4|[=======>---------------------------------------]16%P:Adding4/[========>--------------------------------------]20%P:Adding5-[========>--------------------------------------]20%P:Adding5\[========>--------------------------------------]20%P:Adding5|[========>--------------------------------------]20%P:Adding5/[==========>------------------------------------]24%P:Adding6-[==========>------------------------------------]24%P:Adding6\[==========>------------------------------------]24%P:Adding6|[==========>------------------------------------]24%P:Adding6/[============>----------------------------------]28%P:Adding7-[============>----------------------------------]28%P:Adding7\[============>----------------------------------]28%P:Adding7|[============>----------------------------------]28%P:Adding7/[==============>--------------------------------]32%P:Adding8-[==============>--------------------------------]32%P:Adding8\[==============>--------------------------------]32%P:Adding8|[==============>--------------------------------]32%P:Adding8/[================>------------------------------]36%P:Adding9-[================>------------------------------]36%P:Adding9\[================>------------------------------]36%P:Adding9|[================>------------------------------]36%P:Adding9/[=================>----------------------------]40%P:Adding10-[=================>----------------------------]40%P:Adding10\[=================>----------------------------]40%P:Adding10|[=================>----------------------------]40%P:Adding10/[===================>--------------------------]44%P:Adding11-[===================>--------------------------]44%P:Adding11\[===================>--------------------------]44%P:Adding11|[===================>--------------------------]44%P:Adding11/[=====================>------------------------]48%P:Adding12-[=====================>------------------------]48%P:Adding12\[=====================>------------------------]48%P:Adding12|[=====================>------------------------]48%P:Adding12/[=======================>----------------------]52%P:Adding13-[=======================>----------------------]52%P:Adding13\[=======================>----------------------]52%P:Adding13|[=======================>----------------------]52%P:Adding13/[=========================>--------------------]56%P:Adding14-[=========================>--------------------]56%P:Adding14\[=========================>--------------------]56%P:Adding14|[=========================>--------------------]56%P:Adding14/[===========================>------------------]60%P:Adding15-[===========================>------------------]60%P:Adding15\[===========================>------------------]60%P:Adding15|[===========================>------------------]60%P:Adding15/[============================>-----------------]64%P:Adding16-[============================>-----------------]64%P:Adding16\[============================>-----------------]64%P:Adding16|[============================>-----------------]64%P:Adding16/[==============================>---------------]68%P:Adding17-[==============================>---------------]68%P:Adding17\[==============================>---------------]68%P:Adding17|[==============================>---------------]68%P:Adding17/[================================>-------------]72%P:Adding18-[================================>-------------]72%P:Adding18\[================================>-------------]72%P:Adding18|[================================>-------------]72%P:Adding18/[==================================>-----------]76%P:Adding19-[==================================>-----------]76%P:Adding19\[==================================>-----------]76%P:Adding19|[==================================>-----------]76%P:Adding19/[====================================>---------]80%P:Adding20-[====================================>---------]80%P:Adding20\[====================================>---------]80%P:Adding20|[====================================>---------]80%P:Adding20/[======================================>-------]84%P:Adding21-[======================================>-------]84%P:Adding21\[======================================>-------]84%P:Adding21|[======================================>-------]84%P:Adding21/[=======================================>------]88%P:Adding22-[=======================================>------]88%P:Adding22\[=======================================>------]88%P:Adding22|[=======================================>------]88%P:Adding22/[=========================================>----]92%P:Adding23-[=========================================>----]92%P:Adding23\[=========================================>----]92%P:Adding23|[=========================================>----]92%P:Adding23/[===========================================>--]96%P:Adding24-[===========================================>--]96%P:Adding24\[===========================================>--]96%P:Adding24|[===========================================>--]96%P:Adding24/[==============================================]100%P:Adding25 \ No newline at end of file +-[----------------------------------------------------------]0%\[----------------------------------------------------------]0%|[----------------------------------------------------------]0%/[=>---------------------------------------------]4%P:Adding1-[=>---------------------------------------------]4%P:Adding1\[=>---------------------------------------------]4%P:Adding1|[=>---------------------------------------------]4%P:Adding1/[===>-------------------------------------------]8%P:Adding2-[===>-------------------------------------------]8%P:Adding2\[===>-------------------------------------------]8%P:Adding2|[===>-------------------------------------------]8%P:Adding2/[=====>-----------------------------------------]12%P:Adding3-[=====>-----------------------------------------]12%P:Adding3\[=====>-----------------------------------------]12%P:Adding3|[=====>-----------------------------------------]12%P:Adding3/[=======>---------------------------------------]16%P:Adding4-[=======>---------------------------------------]16%P:Adding4\[=======>---------------------------------------]16%P:Adding4|[=======>---------------------------------------]16%P:Adding4/[========>--------------------------------------]20%P:Adding5-[========>--------------------------------------]20%P:Adding5\[========>--------------------------------------]20%P:Adding5|[========>--------------------------------------]20%P:Adding5/[==========>------------------------------------]24%P:Adding6-[==========>------------------------------------]24%P:Adding6\[==========>------------------------------------]24%P:Adding6|[==========>------------------------------------]24%P:Adding6/[============>----------------------------------]28%P:Adding7-[============>----------------------------------]28%P:Adding7\[============>----------------------------------]28%P:Adding7|[============>----------------------------------]28%P:Adding7/[==============>--------------------------------]32%P:Adding8-[==============>--------------------------------]32%P:Adding8\[==============>--------------------------------]32%P:Adding8|[==============>--------------------------------]32%P:Adding8/[================>------------------------------]36%P:Adding9-[================>------------------------------]36%P:Adding9\[================>------------------------------]36%P:Adding9|[================>------------------------------]36%P:Adding9/[=================>----------------------------]40%P:Adding10-[=================>----------------------------]40%P:Adding10\[=================>----------------------------]40%P:Adding10|[=================>----------------------------]40%P:Adding10/[===================>--------------------------]44%P:Adding11-[===================>--------------------------]44%P:Adding11\[===================>--------------------------]44%P:Adding11|[===================>--------------------------]44%P:Adding11/[=====================>------------------------]48%P:Adding12-[=====================>------------------------]48%P:Adding12\[=====================>------------------------]48%P:Adding12|[=====================>------------------------]48%P:Adding12/[=======================>----------------------]52%P:Adding13-[=======================>----------------------]52%P:Adding13\[=======================>----------------------]52%P:Adding13|[=======================>----------------------]52%P:Adding13/[=========================>--------------------]56%P:Adding14-[=========================>--------------------]56%P:Adding14\[=========================>--------------------]56%P:Adding14|[=========================>--------------------]56%P:Adding14/[===========================>------------------]60%P:Adding15-[===========================>------------------]60%P:Adding15\[===========================>------------------]60%P:Adding15|[===========================>------------------]60%P:Adding15/[============================>-----------------]64%P:Adding16-[============================>-----------------]64%P:Adding16\[============================>-----------------]64%P:Adding16|[============================>-----------------]64%P:Adding16/[==============================>---------------]68%P:Adding17-[==============================>---------------]68%P:Adding17\[==============================>---------------]68%P:Adding17|[==============================>---------------]68%P:Adding17/[================================>-------------]72%P:Adding18-[================================>-------------]72%P:Adding18\[================================>-------------]72%P:Adding18|[================================>-------------]72%P:Adding18/[==================================>-----------]76%P:Adding19-[==================================>-----------]76%P:Adding19\[==================================>-----------]76%P:Adding19|[==================================>-----------]76%P:Adding19/[====================================>---------]80%P:Adding20-[====================================>---------]80%P:Adding20\[====================================>---------]80%P:Adding20|[====================================>---------]80%P:Adding20/[======================================>-------]84%P:Adding21-[======================================>-------]84%P:Adding21\[======================================>-------]84%P:Adding21|[======================================>-------]84%P:Adding21/[=======================================>------]88%P:Adding22-[=======================================>------]88%P:Adding22\[=======================================>------]88%P:Adding22|[=======================================>------]88%P:Adding22/[=========================================>----]92%P:Adding23-[=========================================>----]92%P:Adding23\[=========================================>----]92%P:Adding23|[=========================================>----]92%P:Adding23/[===========================================>--]96%P:Adding24-[===========================================>--]96%P:Adding24\[===========================================>--]96%P:Adding24|[===========================================>--]96%P:Adding24/[==============================================]100%P:Adding25 \ No newline at end of file diff --git a/man/figures/handler_progress-format-2.svg b/man/figures/handler_progress-format-2.svg index 7170867..537874d 100644 --- a/man/figures/handler_progress-format-2.svg +++ b/man/figures/handler_progress-format-2.svg @@ -1 +1 @@ -0%[--------------------------------------------------------]?s4%[=>-------------------------------------------]2sP:Adding14%[=>-------------------------------------------]3sP:Adding14%[=>-------------------------------------------]4sP:Adding14%[=>-------------------------------------------]5sP:Adding18%[===>-----------------------------------------]3sP:Adding28%[===>-----------------------------------------]4sP:Adding212%[====>----------------------------------------]3sP:Adding312%[====>----------------------------------------]4sP:Adding316%[======>--------------------------------------]3sP:Adding416%[======>--------------------------------------]4sP:Adding420%[========>------------------------------------]3sP:Adding524%[==========>----------------------------------]3sP:Adding628%[============>--------------------------------]3sP:Adding732%[=============>-------------------------------]3sP:Adding836%[===============>-----------------------------]2sP:Adding936%[===============>-----------------------------]3sP:Adding940%[=================>--------------------------]2sP:Adding1044%[==================>-------------------------]2sP:Adding1148%[====================>-----------------------]2sP:Adding1252%[======================>---------------------]2sP:Adding1356%[========================>-------------------]2sP:Adding1460%[=========================>------------------]2sP:Adding1564%[===========================>----------------]1sP:Adding1668%[=============================>--------------]1sP:Adding1772%[===============================>------------]1sP:Adding1876%[================================>-----------]1sP:Adding1980%[==================================>---------]1sP:Adding2084%[====================================>-------]1sP:Adding2188%[======================================>-----]0sP:Adding2292%[=======================================>----]0sP:Adding2396%[=========================================>--]0sP:Adding24100%[============================================]0sP:Adding25 \ No newline at end of file +0%[--------------------------------------------------------]?s4%[=>-------------------------------------------]2sP:Adding14%[=>-------------------------------------------]3sP:Adding14%[=>-------------------------------------------]4sP:Adding14%[=>-------------------------------------------]5sP:Adding18%[===>-----------------------------------------]3sP:Adding28%[===>-----------------------------------------]4sP:Adding212%[====>----------------------------------------]3sP:Adding312%[====>----------------------------------------]4sP:Adding316%[======>--------------------------------------]3sP:Adding416%[======>--------------------------------------]4sP:Adding420%[========>------------------------------------]3sP:Adding524%[==========>----------------------------------]3sP:Adding628%[============>--------------------------------]3sP:Adding732%[=============>-------------------------------]3sP:Adding836%[===============>-----------------------------]2sP:Adding936%[===============>-----------------------------]3sP:Adding940%[=================>--------------------------]2sP:Adding1044%[==================>-------------------------]2sP:Adding1148%[====================>-----------------------]2sP:Adding1252%[======================>---------------------]2sP:Adding1356%[========================>-------------------]2sP:Adding1460%[=========================>------------------]2sP:Adding1564%[===========================>----------------]1sP:Adding1668%[=============================>--------------]1sP:Adding1772%[===============================>------------]1sP:Adding1876%[================================>-----------]1sP:Adding1980%[==================================>---------]1sP:Adding2084%[====================================>-------]1sP:Adding2188%[======================================>-----]0sP:Adding2292%[=======================================>----]0sP:Adding2396%[=========================================>--]0sP:Adding24100%[============================================]0sP:Adding25 \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-char-ansi.svg b/man/figures/handler_txtprogressbar-char-ansi.svg index 4fa4dc6..ed82aa1 100644 --- a/man/figures/handler_txtprogressbar-char-ansi.svg +++ b/man/figures/handler_txtprogressbar-char-ansi.svg @@ -1 +1 @@ -||♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|100%||0%|♥♥|4%|♥♥♥♥♥|8%|♥♥♥♥♥♥♥|12%|♥♥♥♥♥♥♥♥♥♥|16%|♥♥♥♥♥♥♥♥♥♥♥♥|20%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥|24%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|28%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|32%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|36%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|40%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|44%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|48%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|52%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|56%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|60%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|64%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|68%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|72%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|76%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|80%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|84%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|88%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|92%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|96% \ No newline at end of file +||♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|100%||0%|♥♥|4%|♥♥♥♥♥|8%|♥♥♥♥♥♥♥|12%|♥♥♥♥♥♥♥♥♥♥|16%|♥♥♥♥♥♥♥♥♥♥♥♥|20%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥|24%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|28%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|32%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|36%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|40%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|44%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|48%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|52%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|56%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|60%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|64%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|68%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|72%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|76%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|80%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|84%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|88%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|92%|♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥|96% \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-char-width-2.svg b/man/figures/handler_txtprogressbar-char-width-2.svg index e654352..4e5e5d9 100644 --- a/man/figures/handler_txtprogressbar-char-width-2.svg +++ b/man/figures/handler_txtprogressbar-char-width-2.svg @@ -1 +1 @@ -||<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>|100%||0%|<>|4%|<><>|8%|<><><><>|12%|<><><><><>|16%|<><><><><><>|20%|<><><><><><><>|24%|<><><><><><><><>|28%|<><><><><><><><><><>|32%|<><><><><><><><><><><>|36%|<><><><><><><><><><><><>|40%|<><><><><><><><><><><><><>|44%|<><><><><><><><><><><><><><>|48%|<><><><><><><><><><><><><><><><>|52%|<><><><><><><><><><><><><><><><><>|56%|<><><><><><><><><><><><><><><><><><>|60%|<><><><><><><><><><><><><><><><><><><>|64%|<><><><><><><><><><><><><><><><><><><><>|68%|<><><><><><><><><><><><><><><><><><><><><><>|72%|<><><><><><><><><><><><><><><><><><><><><><><>|76%|<><><><><><><><><><><><><><><><><><><><><><><><>|80%|<><><><><><><><><><><><><><><><><><><><><><><><><>|84%|<><><><><><><><><><><><><><><><><><><><><><><><><><>|88%|<><><><><><><><><><><><><><><><><><><><><><><><><><><><>|92%|<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>|96% \ No newline at end of file +||<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>|100%||0%|<>|4%|<><>|8%|<><><><>|12%|<><><><><>|16%|<><><><><><>|20%|<><><><><><><>|24%|<><><><><><><><>|28%|<><><><><><><><><><>|32%|<><><><><><><><><><><>|36%|<><><><><><><><><><><><>|40%|<><><><><><><><><><><><><>|44%|<><><><><><><><><><><><><><>|48%|<><><><><><><><><><><><><><><><>|52%|<><><><><><><><><><><><><><><><><>|56%|<><><><><><><><><><><><><><><><><><>|60%|<><><><><><><><><><><><><><><><><><><>|64%|<><><><><><><><><><><><><><><><><><><><>|68%|<><><><><><><><><><><><><><><><><><><><><><>|72%|<><><><><><><><><><><><><><><><><><><><><><><>|76%|<><><><><><><><><><><><><><><><><><><><><><><><>|80%|<><><><><><><><><><><><><><><><><><><><><><><><><>|84%|<><><><><><><><><><><><><><><><><><><><><><><><><><>|88%|<><><><><><><><><><><><><><><><><><><><><><><><><><><><>|92%|<><><><><><><><><><><><><><><><><><><><><><><><><><><><><>|96% \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-char.svg b/man/figures/handler_txtprogressbar-char.svg index 95111bf..e0bf94f 100644 --- a/man/figures/handler_txtprogressbar-char.svg +++ b/man/figures/handler_txtprogressbar-char.svg @@ -1 +1 @@ -||############################################################|100%||0%|##|4%|#####|8%|#######|12%|##########|16%|############|20%|##############|24%|#################|28%|###################|32%|######################|36%|########################|40%|##########################|44%|#############################|48%|###############################|52%|##################################|56%|####################################|60%|######################################|64%|#########################################|68%|###########################################|72%|##############################################|76%|################################################|80%|##################################################|84%|#####################################################|88%|#######################################################|92%|##########################################################|96% \ No newline at end of file +||############################################################|100%||0%|##|4%|#####|8%|#######|12%|##########|16%|############|20%|##############|24%|#################|28%|###################|32%|######################|36%|########################|40%|##########################|44%|#############################|48%|###############################|52%|##################################|56%|####################################|60%|######################################|64%|#########################################|68%|###########################################|72%|##############################################|76%|################################################|80%|##################################################|84%|#####################################################|88%|#######################################################|92%|##########################################################|96% \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-default.svg b/man/figures/handler_txtprogressbar-default.svg index c918444..5b80248 100644 --- a/man/figures/handler_txtprogressbar-default.svg +++ b/man/figures/handler_txtprogressbar-default.svg @@ -1 +1 @@ -||============================================================|100%||0%|==|4%|=====|8%|=======|12%|==========|16%|============|20%|==============|24%|=================|28%|===================|32%|======================|36%|========================|40%|==========================|44%|=============================|48%|===============================|52%|==================================|56%|====================================|60%|======================================|64%|=========================================|68%|===========================================|72%|==============================================|76%|================================================|80%|==================================================|84%|=====================================================|88%|=======================================================|92%|==========================================================|96% \ No newline at end of file +||============================================================|100%||0%|==|4%|=====|8%|=======|12%|==========|16%|============|20%|==============|24%|=================|28%|===================|32%|======================|36%|========================|40%|==========================|44%|=============================|48%|===============================|52%|==================================|56%|====================================|60%|======================================|64%|=========================================|68%|===========================================|72%|==============================================|76%|================================================|80%|==================================================|84%|=====================================================|88%|=======================================================|92%|==========================================================|96% \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-style-1.svg b/man/figures/handler_txtprogressbar-style-1.svg index ef5900d..0cad08d 100644 --- a/man/figures/handler_txtprogressbar-style-1.svg +++ b/man/figures/handler_txtprogressbar-style-1.svg @@ -1 +1 @@ -============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== \ No newline at end of file +============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== \ No newline at end of file diff --git a/man/figures/handler_txtprogressbar-style-3.svg b/man/figures/handler_txtprogressbar-style-3.svg index 32d1c42..0e8bb3b 100644 --- a/man/figures/handler_txtprogressbar-style-3.svg +++ b/man/figures/handler_txtprogressbar-style-3.svg @@ -1 +1 @@ -||============================================================|100%||0%|==|4%|=====|8%|=======|12%|==========|16%|============|20%|==============|24%|=================|28%|===================|32%|======================|36%|========================|40%|==========================|44%|=============================|48%|===============================|52%|==================================|56%|====================================|60%|======================================|64%|=========================================|68%|===========================================|72%|==============================================|76%|================================================|80%|==================================================|84%|=====================================================|88%|=======================================================|92%|==========================================================|96% \ No newline at end of file +||============================================================|100%||0%|==|4%|=====|8%|=======|12%|==========|16%|============|20%|==============|24%|=================|28%|===================|32%|======================|36%|========================|40%|==========================|44%|=============================|48%|===============================|52%|==================================|56%|====================================|60%|======================================|64%|=========================================|68%|===========================================|72%|==============================================|76%|================================================|80%|==================================================|84%|=====================================================|88%|=======================================================|92%|==========================================================|96% \ No newline at end of file diff --git a/man/progressr.Rd b/man/progressr.Rd index 48399a6..9b30278 100644 --- a/man/progressr.Rd +++ b/man/progressr.Rd @@ -93,8 +93,8 @@ with_progress({ Useful links: \itemize{ \item \url{https://progressr.futureverse.org} - \item \url{https://github.com/HenrikBengtsson/progressr} - \item Report bugs at \url{https://github.com/HenrikBengtsson/progressr/issues} + \item \url{https://github.com/futureverse/progressr} + \item Report bugs at \url{https://github.com/futureverse/progressr/issues} } } From fb1864777431332c03d8d0e65d2d935e757c1760 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 10:52:39 -0700 Subject: [PATCH 27/32] NEWS: Mention new handler_nfty() --- DESCRIPTION | 2 +- NEWS.md | 8 +++++++- R/progressr-package.R | 8 ++++++-- man/progressr.Rd | 7 +++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 3aecdfe..3fce6a9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9009 +Version: 0.14.0-9010 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index f8f00d7..ff1656d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,11 @@ # Version (development version) +## New Features + + * Add `handler_ntfy()` for reporting on progress via the Ntfy.sh + Messaging Service using the **ntfy** package. + + ## Bug Fixes * `withProgressShiny()` could produce an `if (config$max_steps == @@ -623,7 +629,7 @@ * TESTS: Increased package test coverage of progression handlers by running all code except the last step that calls the backend, which may not be installed or supported on the current platform, - e.g. **tcltk**, **beepr**, notifier. + e.g. **tcltk**, **beepr**, and **notifier**. ## Bug Fixes diff --git a/R/progressr-package.R b/R/progressr-package.R index 3d761db..832fadc 100644 --- a/R/progressr-package.R +++ b/R/progressr-package.R @@ -56,11 +56,15 @@ #' In Shiny: #' * [withProgressShiny] #' +#' Via notification systems: +#' * [handler_ntfy] +#' * [handler_notifier] +#' * [handler_rpushbullet] +#' #' @example incl/progressr-package.R #' #' @keywords programming iteration #' -#' @docType package #' @aliases progressr-package #' @name progressr -NULL +"_PACKAGE" diff --git a/man/progressr.Rd b/man/progressr.Rd index 9b30278..e106604 100644 --- a/man/progressr.Rd +++ b/man/progressr.Rd @@ -73,6 +73,13 @@ In Shiny: \itemize{ \item \link{withProgressShiny} } + +Via notification systems: +\itemize{ +\item \link{handler_ntfy} +\item \link{handler_notifier} +\item \link{handler_rpushbullet} +} } \examples{ From 12cfa661e9d028669f6998b897b1bcdbe6136355 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 11:30:31 -0700 Subject: [PATCH 28/32] ntfy: Mention the 'NTFY_TOPIC' environment variable in the example --- DESCRIPTION | 2 +- R/{handler_nfty.R => handler_ntfy.R} | 0 incl/handler_ntfy.R | 5 ++++- man/handler_ntfy.Rd | 7 +++++-- 4 files changed, 10 insertions(+), 4 deletions(-) rename R/{handler_nfty.R => handler_ntfy.R} (100%) diff --git a/DESCRIPTION b/DESCRIPTION index 3fce6a9..d370007 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9010 +Version: 0.14.0-9011 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/R/handler_nfty.R b/R/handler_ntfy.R similarity index 100% rename from R/handler_nfty.R rename to R/handler_ntfy.R diff --git a/incl/handler_ntfy.R b/incl/handler_ntfy.R index b667f87..5bac29c 100644 --- a/incl/handler_ntfy.R +++ b/incl/handler_ntfy.R @@ -1,8 +1,11 @@ pkg <- "ntfy" if (requireNamespace(pkg, quietly = TRUE)) { + ## We need to specify a ntfy.sh topic that progress messages + ## should be sent to. See help("ntfy_topic", package = "ntfy") + ## for details + Sys.setenv("NTFY_TOPIC", "R-my-secret-topic") handlers("ntfy") with_progress({ y <- slow_sum(1:10) }) print(y) - } diff --git a/man/handler_ntfy.Rd b/man/handler_ntfy.Rd index 3961862..c189b27 100644 --- a/man/handler_ntfy.Rd +++ b/man/handler_ntfy.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/handler_nfty.R +% Please edit documentation in R/handler_ntfy.R \name{handler_ntfy} \alias{handler_ntfy} \title{Progression Handler: Progress Reported via the Ntfy.sh Messaging Service} @@ -35,11 +35,14 @@ available from \url{https://github.com/jonocarroll/ntfy}. \examples{ pkg <- "ntfy" if (requireNamespace(pkg, quietly = TRUE)) { + ## We need to specify a ntfy.sh topic that progress messages + ## should be sent to. See help("ntfy_topic", package = "ntfy") + ## for details + Sys.setenv("NTFY_TOPIC", "R-my-secret-topic") handlers("ntfy") with_progress({ y <- slow_sum(1:10) }) print(y) - } } \keyword{internal} From cfb0094eed5263c15fe1db2d2942ad319d9c341d Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 16:27:48 -0700 Subject: [PATCH 29/32] GHA: Enable R hub --- .github/workflows/rhub.yaml | 95 +++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/rhub.yaml diff --git a/.github/workflows/rhub.yaml b/.github/workflows/rhub.yaml new file mode 100644 index 0000000..74ec7b0 --- /dev/null +++ b/.github/workflows/rhub.yaml @@ -0,0 +1,95 @@ +# R-hub's generic GitHub Actions workflow file. It's canonical location is at +# https://github.com/r-hub/actions/blob/v1/workflows/rhub.yaml +# You can update this file to a newer version using the rhub2 package: +# +# rhub::rhub_setup() +# +# It is unlikely that you need to modify this file manually. + +name: R-hub +run-name: "${{ github.event.inputs.id }}: ${{ github.event.inputs.name || format('Manually run by {0}', github.triggering_actor) }}" + +on: + workflow_dispatch: + inputs: + config: + description: 'A comma separated list of R-hub platforms to use.' + type: string + default: 'linux,windows,macos' + name: + description: 'Run name. You can leave this empty now.' + type: string + id: + description: 'Unique ID. You can leave this empty now.' + type: string + +jobs: + + setup: + runs-on: ubuntu-latest + outputs: + containers: ${{ steps.rhub-setup.outputs.containers }} + platforms: ${{ steps.rhub-setup.outputs.platforms }} + + steps: + # NO NEED TO CHECKOUT HERE + - uses: r-hub/actions/setup@v1 + with: + config: ${{ github.event.inputs.config }} + id: rhub-setup + + linux-containers: + needs: setup + if: ${{ needs.setup.outputs.containers != '[]' }} + runs-on: ubuntu-latest + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.containers) }} + container: + image: ${{ matrix.config.container }} + + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/platform-info@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/run-check@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + + other-platforms: + needs: setup + if: ${{ needs.setup.outputs.platforms != '[]' }} + runs-on: ${{ matrix.config.os }} + name: ${{ matrix.config.label }} + strategy: + fail-fast: false + matrix: + config: ${{ fromJson(needs.setup.outputs.platforms) }} + + steps: + - uses: r-hub/actions/checkout@v1 + - uses: r-hub/actions/setup-r@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} + - uses: r-hub/actions/platform-info@v1 + with: + token: ${{ secrets.RHUB_TOKEN }} + job-config: ${{ matrix.config.job-config }} + - uses: r-hub/actions/setup-deps@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} + - uses: r-hub/actions/run-check@v1 + with: + job-config: ${{ matrix.config.job-config }} + token: ${{ secrets.RHUB_TOKEN }} From 0406ba8a17a49bc1a036fbb163c0e87ba20ff136 Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 18:07:06 -0700 Subject: [PATCH 30/32] REVDEP: Checked 110 packages [ci skip] --- revdep/README.md | 194 +++++---- revdep/cran.md | 2 +- revdep/problems.md | 996 ++++++++++++++++++++++++++++++++++++--------- 3 files changed, 922 insertions(+), 270 deletions(-) diff --git a/revdep/README.md b/revdep/README.md index 6d13e03..8c9c80d 100644 --- a/revdep/README.md +++ b/revdep/README.md @@ -1,111 +1,139 @@ # Platform -|field |value | -|:--------|:---------------------------------------------------------| -|version |R version 4.3.1 (2023-06-16) | -|os |CentOS Linux 7 (Core) | -|system |x86_64, linux-gnu | -|ui |X11 | -|language |en | -|collate |en_US.UTF-8 | -|ctype |en_US.UTF-8 | -|tz |America/Los_Angeles | -|date |2023-08-10 | -|pandoc |3.1.6 @ /software/c4/cbi/software/pandoc-3.1.6/bin/pandoc | +|field |value | +|:--------|:-----------------------------------------------------| +|version |R version 4.4.1 (2024-06-14) | +|os |Rocky Linux 8.10 (Green Obsidian) | +|system |x86_64, linux-gnu | +|ui |X11 | +|language |en | +|collate |en_US.UTF-8 | +|ctype |en_US.UTF-8 | +|tz |America/Los_Angeles | +|date |2024-10-28 | +|pandoc |3.5 @ /software/c4/cbi/software/pandoc-3.5/bin/pandoc | # Dependencies |package |old |new |Δ | |:---------|:------|:-----------|:--| -|progressr |0.13.0 |0.13.0-9013 |* | -|digest |0.6.33 |0.6.33 | | +|progressr |0.14.0 |0.14.0-9011 |* | +|digest |0.6.37 |0.6.37 | | # Revdeps -## All (82) +## All (110) |package |version |error |warning |note | |:------------------|:----------|:-----|:-------|:----| +|adestr |1.0.0 | | | | |[AIPW](problems.md#aipw)|0.6.3.2 | | |1 | -|[AlpsNMR](problems.md#alpsnmr)|4.2.0 |1 | | | -|antaresEditObject |0.5.1 | | | | -|baseballr |1.5.0 | | | | -|bayesmove |0.2.1 | | | | -|bbotk |0.7.2 | | | | -|beer |1.4.0 | | | | +|ale |0.3.0 | | | | +|[AlpsNMR](problems.md#alpsnmr)|4.6.0 |1 | | | +|antaresEditObject |0.7.1 | | | | +|ao |1.1.0 | | | | +|baseballr |1.6.0 | | | | +|[baskexact](problems.md#baskexact)|1.0.1 | | |1 | +|basksim |1.0.0 | | | | +|[bayesmove](problems.md#bayesmove)|0.2.1 | | |1 | +|bbotk |1.2.0 | | | | +|beer |1.8.0 | | | | |bolasso |0.2.0 | | | | -|campsis |1.4.1 | | | | +|calmr |0.6.1 | | | | +|campsis |1.5.4 | | | | |canaper |1.0.1 | | | | -|cfbfastR |1.9.0 | | | | -|[cSEM](problems.md#csem)|0.5.0 | | |1 | -|cyclestreets |0.6.0 | | | | -|[dipsaus](problems.md#dipsaus)|0.2.8 | | |1 | -|easyalluvial |0.3.1 | | | | +|cccrm |3.0.3 | | | | +|[crumble](problems.md#crumble)|0.1.0 |1 | | | +|[cSEM](problems.md#csem)|0.5.0 | | |2 | +|cyclestreets |1.0.2 | | | | +|dapper |1.0.0 | | | | +|[deseats](problems.md#deseats)|1.1.0 | | |1 | +|[dipsaus](problems.md#dipsaus)|0.2.9 | | |1 | +|drugdevelopR |1.0.1 | | | | +|easyalluvial |0.3.2 | | | | |ecic |0.0.3 | | | | -|[econet](problems.md#econet)|1.0.0 | |1 | | +|[econet](problems.md#econet)|1.0.0.1 | |1 |1 | |[EFAtools](problems.md#efatools)|0.4.4 | | |3 | -|elevatr |0.4.5 | | | | -|[EpiNow2](problems.md#epinow2)|1.3.5 | | |2 | -|epwshiftr |0.1.3 | | | | -|fabletools |0.3.3 | | | | -|fastRhockey |0.4.0 | | | | +|EGAnet |2.0.8 | | | | +|elevatr |0.99.0 | | | | +|EpiForsk |0.1.1 | | | | +|[EpiModel](problems.md#epimodel)|2.5.0 | | |1 | +|[EpiNow2](problems.md#epinow2)|1.6.0 | | |4 | +|epwshiftr |0.1.4 | | | | +|fabletools |0.5.0 | | | | +|[fastRhockey](problems.md#fastrhockey)|0.4.0 | | |1 | |[fdacluster](problems.md#fdacluster)|0.3.0 | | |1 | -|ffsimulator |1.2.3 | | | | -|funGp |0.3.2 | | | | -|fxTWAPLS |0.1.2 | | | | -|[geocmeans](problems.md#geocmeans)|0.3.3 | | |1 | +|funGp |1.0.0 | | | | +|futureverse |0.1.0 | | | | +|fxTWAPLS |0.1.3 | | | | +|geocausal |0.3.2 | | | | +|[geocmeans](problems.md#geocmeans)|0.3.4 | | |1 | +|[GeoModels](problems.md#geomodels)|2.0.7 | | |1 | |gtfs2emis |0.1.0 | | | | -|gtfs2gps |2.1-1 | | | | -|hmer |1.5.0 | | | | -|hoopR |1.8.0 | | | | -|[ISAnalytics](problems.md#isanalytics)|1.10.2 | | |1 | -|isopam |1.1.0 | | | | -|lava |1.7.2.1 | | | | -|lightr |1.7.0 | | | | -|lmtp |1.3.2 | | | | -|LWFBrook90R |0.5.2 | | | | -|mcmcensemble |3.0.0 | | | | -|[metabolomicsR](problems.md#metabolomicsr)|1.0.0 | |1 |1 | -|mikropml |1.6.0 | | | | -|mlr3 |0.16.1 | | | | -|[modeltime.ensemble](problems.md#modeltimeensemble)|1.0.3 | | |1 | +|[gtfs2gps](problems.md#gtfs2gps)|2.1-2 |1 | | | +|[hbamr](problems.md#hbamr)|2.3.2 | | |2 | +|hmer |1.6.0 | | | | +|hoopR |2.1.0 | | | | +|[ISAnalytics](problems.md#isanalytics)|1.14.0 |1 | |2 | +|[kmeRtone](problems.md#kmertone)|1.0 | | |2 | +|[lava](problems.md#lava)|1.8.0 | | |1 | +|[lightr](problems.md#lightr)|1.7.1 | | |2 | +|lmtp |1.4.0 | | | | +|LWFBrook90R |0.6.1 | | | | +|[mapme.biodiversity](problems.md#mapmebiodiversity)|0.9.3 |1 | | | +|mcmcensemble |3.1.0 | | | | +|[mikropml](problems.md#mikropml)|1.6.1 | | |1 | +|mlr3 |0.21.1 | | | | |[modeltime.resample](problems.md#modeltimeresample)|0.2.3 | | |1 | -|mpathsenser |1.1.3 | | | | -|nflfastR |4.5.1 | | | | -|nflreadr |1.3.2 | | | | -|nflseedR |1.2.0 | | | | -|nlrx |0.4.4 | | | | +|mpathsenser |1.2.3 | | | | +|nflfastR |4.6.1 | | | | +|nflreadr |1.4.1 | | | | +|[nflseedR](problems.md#nflseedr)|1.2.0 | | |1 | +|nlrx |0.4.5 | | | | |[oddsapiR](problems.md#oddsapir)|0.0.3 | | |1 | -|opentripplanner |0.5.1 | | | | -|[pavo](problems.md#pavo)|2.8.0 | |1 | | +|opentripplanner |0.5.2 | | | | +|parseRPDR |1.1.1 | | | | +|[pavo](problems.md#pavo)|2.9.0 | |1 | | |plnr |2022.11.23 | | | | -|polle |1.3 | | | | -|poppr |2.9.4 | | | | -|powRICLPM |0.1.1 | | | | -|[RAINBOWR](problems.md#rainbowr)|0.1.32 | | |1 | +|polle |1.5 | | | | +|poppr |2.9.6 | | | | +|powRICLPM |0.2.1 | | | | +|[PWIR](problems.md#pwir)|0.0.3 | | |1 | +|[RAINBOWR](problems.md#rainbowr)|0.1.35 | | |1 | |rainette |0.3.1.1 | | | | |rangeMapper |2.0.3 | | | | -|receptiviti |0.1.4 | | | | +|readsdr |0.3.0 | | | | +|[receptiviti](problems.md#receptiviti)|0.1.8 |1 | | | +|rechaRge |1.0.0 | | | | |remiod |1.0.2 | | | | -|semPower |2.0.1 | | | | -|[sentopics](problems.md#sentopics)|0.7.2 | | |3 | -|[Seurat](problems.md#seurat)|4.3.0.1 | | |3 | -|[SeuratObject](problems.md#seuratobject)|4.1.3 | | |1 | -|simaerep |0.4.3 | | | | -|[SimDesign](problems.md#simdesign)|2.12 | | |1 | -|simfinapi |0.2.4 | | | | -|sims |0.0.3 | | | | -|[smoots](problems.md#smoots)|1.1.3 | | |1 | -|[sphunif](problems.md#sphunif)|1.0.1 | | |3 | -|[spNetwork](problems.md#spnetwork)|0.4.3.7 | | |1 | -|[SPQR](problems.md#spqr)|0.1.0 | | |2 | -|[squat](problems.md#squat)|0.2.1 | | |1 | -|survex |1.0.0 | | | | -|[targeted](problems.md#targeted)|0.3 | | |2 | -|terrainr |0.7.4 | | | | -|tidyfit |0.6.4 | | | | -|tidySEM |0.2.4 | | | | +|restriktor |0.5-90 | | | | +|rsi |0.3.1 | | | | +|[rTwig](problems.md#rtwig)|1.1.0 | | |1 | +|saeczi |0.2.0 | | | | +|semPower |2.1.1 | | | | +|semTests |0.5.0 | | | | +|[sentopics](problems.md#sentopics)|0.7.4 | | |3 | +|[Seurat](problems.md#seurat)|5.1.0 | | |3 | +|[SeuratObject](problems.md#seuratobject)|5.0.2 | | |3 | +|simaerep |0.6.0 | | | | +|[SimDesign](problems.md#simdesign)|2.17.1 | | |1 | +|sims |0.0.4 | | | | +|[skpr](problems.md#skpr)|1.7.1 | | |1 | +|[smoots](problems.md#smoots)|1.1.4 | | |1 | +|[sphunif](problems.md#sphunif)|1.4.0 | | |2 | +|[spNetwork](problems.md#spnetwork)|0.4.4.3 | | |1 | +|[squat](problems.md#squat)|0.3.0 | | |1 | +|[stppSim](problems.md#stppsim)|1.3.4 | |1 | | +|survex |1.2.0 | | | | +|[targeted](problems.md#targeted)|0.5 | | |1 | +|terrainr |0.7.5 | | | | +|tidyfit |0.7.2 | | | | +|tidySEM |0.2.7 | | | | +|[tsdistributions](problems.md#tsdistributions)|1.0.2 |1 | |1 | +|[tsgarch](problems.md#tsgarch)|1.0.3 | | |1 | +|[vital](problems.md#vital)|1.1.0 | | |1 | |[vmeasur](problems.md#vmeasur)|0.1.4 | |1 | | -|wehoop |1.5.0 | | | | -|[WeightedCluster](problems.md#weightedcluster)|1.6-4 | |1 | | +|wehoop |2.1.0 | | | | +|[WeightedCluster](problems.md#weightedcluster)|1.8-0 | |1 | | +|ycevo |0.2.1 | | | | diff --git a/revdep/cran.md b/revdep/cran.md index 08a8ef3..7f5d77a 100644 --- a/revdep/cran.md +++ b/revdep/cran.md @@ -1,6 +1,6 @@ ## revdepcheck results -We checked 82 reverse dependencies (79 from CRAN + 3 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package. +We checked 110 reverse dependencies (107 from CRAN + 3 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package. * We saw 0 new problems * We failed to check 0 packages diff --git a/revdep/problems.md b/revdep/problems.md index 51c53d7..fa763a3 100644 --- a/revdep/problems.md +++ b/revdep/problems.md @@ -6,9 +6,9 @@ * GitHub: https://github.com/yqzhong7/AIPW * Source code: https://github.com/cran/AIPW * Date/Publication: 2021-06-11 09:30:02 UTC -* Number of recursive dependencies: 101 +* Number of recursive dependencies: 99 -Run `revdep_details(, "AIPW")` for more info +Run `revdepcheck::revdep_details(, "AIPW")` for more info @@ -26,13 +26,13 @@ Run `revdep_details(, "AIPW")` for more info
-* Version: 4.2.0 +* Version: 4.6.0 * GitHub: https://github.com/sipss/AlpsNMR * Source code: https://github.com/cran/AlpsNMR -* Date/Publication: 2023-04-25 -* Number of recursive dependencies: 172 +* Date/Publication: 2024-04-30 +* Number of recursive dependencies: 174 -Run `revdep_details(, "AlpsNMR")` for more info +Run `revdepcheck::revdep_details(, "AlpsNMR")` for more info
@@ -41,17 +41,17 @@ Run `revdep_details(, "AlpsNMR")` for more info * checking re-building of vignette outputs ... ERROR ``` Error(s) in re-building vignettes: + ... --- re-building ‘Vig01-introduction-to-alpsnmr.Rmd’ using rmarkdown - ! LuaTeX error .../texlive/texmf-dist/scripts/oberdiek/oberdiek.luatex.lua:55: b - ad argument #1 to 'insert' (table expected, got nil) - stack traceback: - [C]: in function 'insert' - .../texlive/texmf-dist/scripts/oberdiek/oberdiek.luatex.lua:55: in main chunk - [C]: in function 'dofile' - [string "\directlua "]:6: in main chunk. - l.139 } + Error: processing vignette 'Vig01-introduction-to-alpsnmr.Rmd' failed with diagnostics: + LaTeX failed to compile /c4/home/henrik/repositories/progressr/revdep/checks/AlpsNMR/new/AlpsNMR.Rcheck/vign_test/AlpsNMR/vignettes/Vig01-introduction-to-alpsnmr.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. + --- failed re-building ‘Vig01-introduction-to-alpsnmr.Rmd’ + + --- re-building ‘Vig01b-introduction-to-alpsnmr-old-api.Rmd’ using rmarkdown + Error: processing vignette 'Vig01b-introduction-to-alpsnmr-old-api.Rmd' failed with diagnostics: + LaTeX failed to compile /c4/home/henrik/repositories/progressr/revdep/checks/AlpsNMR/new/AlpsNMR.Rcheck/vign_test/AlpsNMR/vignettes/Vig01b-introduction-to-alpsnmr-old-api.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. ... - LaTeX failed to compile /c4/home/henrik/repositories/progressr/revdep/checks/AlpsNMR/new/AlpsNMR.Rcheck/vign_test/AlpsNMR/vignettes/Vig02-handling-metadata-and-annotations.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See Vig02-handling-metadata-and-annotations.log for more info. + LaTeX failed to compile /c4/home/henrik/repositories/progressr/revdep/checks/AlpsNMR/new/AlpsNMR.Rcheck/vign_test/AlpsNMR/vignettes/Vig02-handling-metadata-and-annotations.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. --- failed re-building ‘Vig02-handling-metadata-and-annotations.Rmd’ SUMMARY: processing the following files failed: @@ -63,6 +63,75 @@ Run `revdep_details(, "AlpsNMR")` for more info Execution halted ``` +# baskexact + +
+ +* Version: 1.0.1 +* GitHub: https://github.com/lbau7/baskexact +* Source code: https://github.com/cran/baskexact +* Date/Publication: 2024-04-09 13:30:02 UTC +* Number of recursive dependencies: 86 + +Run `revdepcheck::revdep_details(, "baskexact")` for more info + +
+ +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘ggplot2’ + All declared Imports should be used. + ``` + +# bayesmove + +
+ +* Version: 0.2.1 +* GitHub: https://github.com/joshcullen/bayesmove +* Source code: https://github.com/cran/bayesmove +* Date/Publication: 2021-10-22 08:50:09 UTC +* Number of recursive dependencies: 166 + +Run `revdepcheck::revdep_details(, "bayesmove")` for more info + +
+ +## In both + +* checking Rd files ... NOTE + ``` + checkRd: (-1) insert_NAs.Rd:22: Lost braces; missing escapes or markup? + 22 | A data frame where new rows have been inserted to regularize the \code{date} column. This results in values provided for \code{id}, \code{date}, and {dt} while inserting NAs for all other columns. Additionally, observations with duplicate date-times are removed. + | ^ + ``` + +# crumble + +
+ +* Version: 0.1.0 +* GitHub: NA +* Source code: https://github.com/cran/crumble +* Date/Publication: 2024-09-18 11:50:05 UTC +* Number of recursive dependencies: 127 + +Run `revdepcheck::revdep_details(, "crumble")` for more info + +
+ +## In both + +* checking package dependencies ... ERROR + ``` + Package required but not available: ‘Rsymphony’ + + See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ + manual. + ``` + # cSEM
@@ -71,9 +140,9 @@ Run `revdep_details(, "AlpsNMR")` for more info * GitHub: https://github.com/M-E-Rademaker/cSEM * Source code: https://github.com/cran/cSEM * Date/Publication: 2022-11-24 17:50:05 UTC -* Number of recursive dependencies: 127 +* Number of recursive dependencies: 128 -Run `revdep_details(, "cSEM")` for more info +Run `revdepcheck::revdep_details(, "cSEM")` for more info
@@ -85,17 +154,47 @@ Run `revdep_details(, "cSEM")` for more info All declared Imports should be used. ``` +* checking Rd files ... NOTE + ``` + checkRd: (-1) calculateEffects.Rd:24: Lost braces; missing escapes or markup? + 24 | equals (I-B)^{-1}Gamma. The indirect effect equals the difference between + | ^ + ``` + +# deseats + +
+ +* Version: 1.1.0 +* GitHub: NA +* Source code: https://github.com/cran/deseats +* Date/Publication: 2024-07-12 10:50:15 UTC +* Number of recursive dependencies: 115 + +Run `revdepcheck::revdep_details(, "deseats")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 8.6Mb + sub-directories of 1Mb or more: + libs 7.8Mb + ``` + # dipsaus
-* Version: 0.2.8 +* Version: 0.2.9 * GitHub: https://github.com/dipterix/dipsaus * Source code: https://github.com/cran/dipsaus -* Date/Publication: 2023-07-03 20:00:03 UTC +* Date/Publication: 2024-06-27 11:10:01 UTC * Number of recursive dependencies: 69 -Run `revdep_details(, "dipsaus")` for more info +Run `revdepcheck::revdep_details(, "dipsaus")` for more info
@@ -103,23 +202,23 @@ Run `revdep_details(, "dipsaus")` for more info * checking installed package size ... NOTE ``` - installed size is 5.9Mb + installed size is 6.7Mb sub-directories of 1Mb or more: doc 1.1Mb - libs 3.5Mb + libs 4.2Mb ``` # econet
-* Version: 1.0.0 +* Version: 1.0.0.1 * GitHub: NA * Source code: https://github.com/cran/econet -* Date/Publication: 2022-04-28 00:00:02 UTC +* Date/Publication: 2024-07-31 10:59:28 UTC * Number of recursive dependencies: 64 -Run `revdep_details(, "econet")` for more info +Run `revdepcheck::revdep_details(, "econet")` for more info
@@ -130,13 +229,13 @@ Run `revdep_details(, "econet")` for more info Error(s) in re-building vignettes: ... --- re-building ‘econet.tex’ using tex + Warning in texi2dvi(pathnameR, pdf = pdf, clean = clean, quiet = quiet, : + texi2dvi script/program not available, using emulation Error: processing vignette 'econet.tex' failed with diagnostics: - Running 'texi2dvi' on 'econet.tex' failed. + unable to run pdflatex on 'econet.tex' LaTeX errors: ! LaTeX Error: File `orcidlink.sty' not found. - Type X to quit or to proceed, - or enter new name. (Default extension: sty) ... l.5 \graphicspath {{Figures/}}^^M @@ -150,6 +249,15 @@ Run `revdep_details(, "econet")` for more info Execution halted ``` +* checking installed files from ‘inst/doc’ ... NOTE + ``` + The following files should probably not be installed: + ‘econet.tex’ + + Consider the use of a .Rinstignore file: see ‘Writing R Extensions’, + or move the vignette sources from ‘inst/doc’ to ‘vignettes’. + ``` + # EFAtools
@@ -160,7 +268,7 @@ Run `revdep_details(, "econet")` for more info * Date/Publication: 2023-01-06 14:50:40 UTC * Number of recursive dependencies: 93 -Run `revdep_details(, "EFAtools")` for more info +Run `revdepcheck::revdep_details(, "EFAtools")` for more info
@@ -173,9 +281,9 @@ Run `revdep_details(, "EFAtools")` for more info * checking installed package size ... NOTE ``` - installed size is 7.2Mb + installed size is 7.5Mb sub-directories of 1Mb or more: - libs 6.0Mb + libs 6.2Mb ``` * checking dependencies in R code ... NOTE @@ -184,28 +292,63 @@ Run `revdep_details(, "EFAtools")` for more info All declared Imports should be used. ``` +# EpiModel + +
+ +* Version: 2.5.0 +* GitHub: https://github.com/EpiModel/EpiModel +* Source code: https://github.com/cran/EpiModel +* Date/Publication: 2024-10-11 17:50:02 UTC +* Number of recursive dependencies: 127 + +Run `revdepcheck::revdep_details(, "EpiModel")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 5.3Mb + sub-directories of 1Mb or more: + doc 2.8Mb + libs 1.2Mb + ``` + # EpiNow2
-* Version: 1.3.5 +* Version: 1.6.0 * GitHub: https://github.com/epiforecasts/EpiNow2 * Source code: https://github.com/cran/EpiNow2 -* Date/Publication: 2023-04-27 13:20:04 UTC -* Number of recursive dependencies: 129 +* Date/Publication: 2024-10-02 20:20:22 UTC +* Number of recursive dependencies: 132 -Run `revdep_details(, "EpiNow2")` for more info +Run `revdepcheck::revdep_details(, "EpiNow2")` for more info
## In both +* checking package dependencies ... NOTE + ``` + Package suggested but not available for checking: ‘cmdstanr’ + ``` + * checking installed package size ... NOTE ``` - installed size is 245.1Mb + installed size is 240.1Mb sub-directories of 1Mb or more: - help 1.4Mb - libs 242.9Mb + doc 1.4Mb + extdata 2.3Mb + libs 234.9Mb + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘cmdstanr’ ``` * checking for GNU extensions in Makefiles ... NOTE @@ -213,6 +356,30 @@ Run `revdep_details(, "EpiNow2")` for more info GNU make is a SystemRequirements. ``` +# fastRhockey + +
+ +* Version: 0.4.0 +* GitHub: https://github.com/sportsdataverse/fastRhockey +* Source code: https://github.com/cran/fastRhockey +* Date/Publication: 2022-10-25 20:55:15 UTC +* Number of recursive dependencies: 116 + +Run `revdepcheck::revdep_details(, "fastRhockey")` for more info + +
+ +## In both + +* checking Rd files ... NOTE + ``` + checkRd: (-1) update_nhl_db.Rd:51-53: Lost braces in \itemize; meant \describe ? + checkRd: (-1) update_nhl_db.Rd:54-57: Lost braces in \itemize; meant \describe ? + checkRd: (-1) update_phf_db.Rd:51-53: Lost braces in \itemize; meant \describe ? + checkRd: (-1) update_phf_db.Rd:54-57: Lost braces in \itemize; meant \describe ? + ``` + # fdacluster
@@ -221,9 +388,9 @@ Run `revdep_details(, "EpiNow2")` for more info * GitHub: https://github.com/astamm/fdacluster * Source code: https://github.com/cran/fdacluster * Date/Publication: 2023-07-04 15:53:04 UTC -* Number of recursive dependencies: 121 +* Number of recursive dependencies: 127 -Run `revdep_details(, "fdacluster")` for more info +Run `revdepcheck::revdep_details(, "fdacluster")` for more info
@@ -231,25 +398,25 @@ Run `revdep_details(, "fdacluster")` for more info * checking installed package size ... NOTE ``` - installed size is 22.2Mb + installed size is 22.7Mb sub-directories of 1Mb or more: R 1.8Mb - doc 1.4Mb + doc 1.5Mb help 2.1Mb - libs 16.4Mb + libs 16.8Mb ``` # geocmeans
-* Version: 0.3.3 +* Version: 0.3.4 * GitHub: https://github.com/JeremyGelb/geocmeans * Source code: https://github.com/cran/geocmeans -* Date/Publication: 2023-02-07 01:02:31 UTC -* Number of recursive dependencies: 197 +* Date/Publication: 2023-09-12 03:10:02 UTC +* Number of recursive dependencies: 200 -Run `revdep_details(, "geocmeans")` for more info +Run `revdepcheck::revdep_details(, "geocmeans")` for more info
@@ -257,83 +424,305 @@ Run `revdep_details(, "geocmeans")` for more info * checking installed package size ... NOTE ``` - installed size is 14.5Mb + installed size is 14.3Mb sub-directories of 1Mb or more: - doc 1.7Mb extdata 3.0Mb - libs 8.2Mb + libs 9.0Mb + ``` + +# GeoModels + +
+ +* Version: 2.0.7 +* GitHub: https://github.com/vmoprojs/GeoModels +* Source code: https://github.com/cran/GeoModels +* Date/Publication: 2024-10-25 21:30:02 UTC +* Number of recursive dependencies: 55 + +Run `revdepcheck::revdep_details(, "GeoModels")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 6.2Mb + sub-directories of 1Mb or more: + R 1.0Mb + data 1.9Mb + libs 2.8Mb + ``` + +# gtfs2gps + +
+ +* Version: 2.1-2 +* GitHub: https://github.com/ipeaGIT/gtfs2gps +* Source code: https://github.com/cran/gtfs2gps +* Date/Publication: 2024-10-08 07:00:06 UTC +* Number of recursive dependencies: 86 + +Run `revdepcheck::revdep_details(, "gtfs2gps")` for more info + +
+ +## In both + +* checking tests ... + ``` + Running ‘testthat.R’ + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Complete output: + > library(testthat) + > library(gtfs2gps) + gtfs2gps version 2.1-2 is now loaded + NOTE: All filter functions from gtfs2gps were removed + Please replace them by similar functions from gtfstools + > + ... + 4. └─terra (local) .local(x, ...) + 5. ├─terra::makeValid(x) + 6. └─terra::makeValid(x) + 7. └─terra (local) .local(x, ...) + 8. └─terra:::messages(x) + 9. └─terra:::error(f, x@ptr$getError()) + + [ FAIL 1 | WARN 0 | SKIP 0 | PASS 119 ] + Error: Test failures + Execution halted + ``` + +# hbamr + +
+ +* Version: 2.3.2 +* GitHub: https://github.com/jbolstad/hbamr +* Source code: https://github.com/cran/hbamr +* Date/Publication: 2024-09-23 12:20:07 UTC +* Number of recursive dependencies: 90 + +Run `revdepcheck::revdep_details(, "hbamr")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 342.4Mb + sub-directories of 1Mb or more: + libs 340.7Mb + ``` + +* checking for GNU extensions in Makefiles ... NOTE + ``` + GNU make is a SystemRequirements. ``` # ISAnalytics
-* Version: 1.10.2 +* Version: 1.14.0 * GitHub: https://github.com/calabrialab/ISAnalytics * Source code: https://github.com/cran/ISAnalytics -* Date/Publication: 2023-07-24 -* Number of recursive dependencies: 172 +* Date/Publication: 2024-04-30 +* Number of recursive dependencies: 178 -Run `revdep_details(, "ISAnalytics")` for more info +Run `revdepcheck::revdep_details(, "ISAnalytics")` for more info
## In both +* checking examples ... ERROR + ``` + Running examples in ‘ISAnalytics-Ex.R’ failed + The error most likely occurred in: + + > ### Name: CIS_grubbs + > ### Title: Grubbs test for Common Insertion Sites (CIS). + > ### Aliases: CIS_grubbs + > + > ### ** Examples + > + > data("integration_matrices", package = "ISAnalytics") + > cis <- CIS_grubbs(integration_matrices) + Error in print.data.table(missing_genes, n = Inf) : + argument 2 matches multiple formal arguments + Calls: CIS_grubbs ... paste -> paste0 -> -> withVisible -> print + Execution halted + ``` + * checking installed package size ... NOTE ``` - installed size is 7.2Mb + installed size is 7.3Mb sub-directories of 1Mb or more: data 1.4Mb - doc 3.5Mb + doc 3.6Mb + ``` + +* checking Rd files ... NOTE + ``` + checkRd: (-1) refGenes_hg19.Rd:21: Lost braces; missing escapes or markup? + 21 | \item Download from {http://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/} + | ^ ``` -# metabolomicsR +# kmeRtone
-* Version: 1.0.0 -* GitHub: https://github.com/XikunHan/metabolomicsR -* Source code: https://github.com/cran/metabolomicsR -* Date/Publication: 2022-04-29 07:40:02 UTC -* Number of recursive dependencies: 188 +* Version: 1.0 +* GitHub: https://github.com/SahakyanLab/kmeRtone +* Source code: https://github.com/cran/kmeRtone +* Date/Publication: 2024-08-30 10:50:06 UTC +* Number of recursive dependencies: 82 -Run `revdep_details(, "metabolomicsR")` for more info +Run `revdepcheck::revdep_details(, "kmeRtone")` for more info
## In both -* checking dependencies in R code ... WARNING +* checking installed package size ... NOTE + ``` + installed size is 9.9Mb + sub-directories of 1Mb or more: + libs 8.4Mb + ``` + +* checking for GNU extensions in Makefiles ... NOTE ``` - Missing or unexported object: ‘future::multiprocess’ + GNU make is a SystemRequirements. ``` +# lava + +
+ +* Version: 1.8.0 +* GitHub: https://github.com/kkholst/lava +* Source code: https://github.com/cran/lava +* Date/Publication: 2024-03-05 13:00:02 UTC +* Number of recursive dependencies: 131 + +Run `revdepcheck::revdep_details(, "lava")` for more info + +
+ +## In both + * checking package dependencies ... NOTE ``` - Package suggested but not available for checking: ‘genuMet’ + Package suggested but not available for checking: ‘lavaSearch2’ ``` -# modeltime.ensemble +# lightr
-* Version: 1.0.3 -* GitHub: https://github.com/business-science/modeltime.ensemble -* Source code: https://github.com/cran/modeltime.ensemble -* Date/Publication: 2023-04-18 11:50:02 UTC -* Number of recursive dependencies: 226 +* Version: 1.7.1 +* GitHub: https://github.com/ropensci/lightr +* Source code: https://github.com/cran/lightr +* Date/Publication: 2024-03-21 21:50:10 UTC +* Number of recursive dependencies: 92 -Run `revdep_details(, "modeltime.ensemble")` for more info +Run `revdepcheck::revdep_details(, "lightr")` for more info
## In both -* checking dependencies in R code ... NOTE +* checking package dependencies ... NOTE ``` - Namespace in Imports field not imported from: ‘parsnip’ - All declared Imports should be used. + Package suggested but not available for checking: ‘pavo’ + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘pavo’ + ``` + +# mapme.biodiversity + +
+ +* Version: 0.9.3 +* GitHub: https://github.com/mapme-initiative/mapme.biodiversity +* Source code: https://github.com/cran/mapme.biodiversity +* Date/Publication: 2024-10-21 08:10:02 UTC +* Number of recursive dependencies: 107 + +Run `revdepcheck::revdep_details(, "mapme.biodiversity")` for more info + +
+ +## In both + +* checking tests ... + ``` + Running ‘testthat.R’ + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Last 50 lines of output: + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test-calc_deforestation_drivers.R:16:3'): deforestation drivers works ── + `.check_single_asset(result)` produced warnings. + ── Failure ('test-calc_deforestation_drivers.R:17:3'): deforestation drivers works ── + unique(result$variable) (`actual`) not equal to c(...) (`expected`). + + ... + 12. │ └─jsonlite:::parseJSON(txt, bigint_as_char) + 13. │ └─jsonlite:::parse_string(txt, bigint_as_char) + 14. └─base::.handleSimpleError(...) + 15. └─purrr (local) h(simpleError(msg, call)) + 16. └─cli::cli_abort(...) + 17. └─rlang::abort(...) + + [ FAIL 5 | WARN 1 | SKIP 38 | PASS 560 ] + Error: Test failures + Execution halted + ``` + +# mikropml + +
+ +* Version: 1.6.1 +* GitHub: https://github.com/SchlossLab/mikropml +* Source code: https://github.com/cran/mikropml +* Date/Publication: 2023-08-21 15:10:05 UTC +* Number of recursive dependencies: 130 + +Run `revdepcheck::revdep_details(, "mikropml")` for more info + +
+ +## In both + +* checking Rd files ... NOTE + ``` + checkRd: (-1) create_grouped_data_partition.Rd:60: Lost braces; missing escapes or markup? + 60 | Zena Lapp, {zenalapp@umich.edu} + | ^ + checkRd: (-1) create_grouped_data_partition.Rd:62: Lost braces; missing escapes or markup? + 62 | Kelly Sovacool, {sovacool@umich.edu} + | ^ + checkRd: (-1) create_grouped_k_multifolds.Rd:30: Lost braces; missing escapes or markup? + 30 | Zena Lapp, {zenalapp@umich.edu} + | ^ + checkRd: (-1) get_partition_indices.Rd:58: Lost braces; missing escapes or markup? + 58 | Kelly Sovacool, {sovacool@umich.edu} + | ^ + checkRd: (-1) set_hparams_glmnet.Rd:16: Lost braces; missing escapes or markup? + 16 | Zena Lapp, {zenalapp@umich.edu} + | ^ ``` # modeltime.resample @@ -344,9 +733,9 @@ Run `revdep_details(, "modeltime.ensemble")` for more info * GitHub: https://github.com/business-science/modeltime.resample * Source code: https://github.com/cran/modeltime.resample * Date/Publication: 2023-04-12 15:50:02 UTC -* Number of recursive dependencies: 224 +* Number of recursive dependencies: 227 -Run `revdep_details(, "modeltime.resample")` for more info +Run `revdepcheck::revdep_details(, "modeltime.resample")` for more info @@ -359,6 +748,35 @@ Run `revdep_details(, "modeltime.resample")` for more info All declared Imports should be used. ``` +# nflseedR + +
+ +* Version: 1.2.0 +* GitHub: https://github.com/nflverse/nflseedR +* Source code: https://github.com/cran/nflseedR +* Date/Publication: 2023-01-05 21:50:31 UTC +* Number of recursive dependencies: 87 + +Run `revdepcheck::revdep_details(, "nflseedR")` for more info + +
+ +## In both + +* checking Rd files ... NOTE + ``` + checkRd: (-1) load_schedules.Rd:27: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:28: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:29: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:30: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:31: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:60: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:61: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:62: Lost braces in \itemize; \value handles \item{}{} directly + checkRd: (-1) load_schedules.Rd:63: Lost braces in \itemize; \value handles \item{}{} directly + ``` + # oddsapiR
@@ -367,9 +785,9 @@ Run `revdep_details(, "modeltime.resample")` for more info * GitHub: https://github.com/sportsdataverse/oddsapiR * Source code: https://github.com/cran/oddsapiR * Date/Publication: 2023-03-19 18:50:02 UTC -* Number of recursive dependencies: 119 +* Number of recursive dependencies: 120 -Run `revdep_details(, "oddsapiR")` for more info +Run `revdepcheck::revdep_details(, "oddsapiR")` for more info
@@ -384,13 +802,13 @@ Run `revdep_details(, "oddsapiR")` for more info
-* Version: 2.8.0 +* Version: 2.9.0 * GitHub: https://github.com/rmaia/pavo * Source code: https://github.com/cran/pavo -* Date/Publication: 2022-08-16 13:00:20 UTC -* Number of recursive dependencies: 93 +* Date/Publication: 2023-09-24 10:10:02 UTC +* Number of recursive dependencies: 103 -Run `revdep_details(, "pavo")` for more info +Run `revdepcheck::revdep_details(, "pavo")` for more info
@@ -403,17 +821,39 @@ Run `revdep_details(, "pavo")` for more info See ‘/c4/home/henrik/repositories/progressr/revdep/checks/pavo/new/pavo.Rcheck/00install.out’ for details. ``` +# PWIR + +
+ +* Version: 0.0.3 +* GitHub: NA +* Source code: https://github.com/cran/PWIR +* Date/Publication: 2023-10-20 09:50:02 UTC +* Number of recursive dependencies: 110 + +Run `revdepcheck::revdep_details(, "PWIR")` for more info + +
+ +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘progressr’ + All declared Imports should be used. + ``` + # RAINBOWR
-* Version: 0.1.32 +* Version: 0.1.35 * GitHub: NA * Source code: https://github.com/cran/RAINBOWR -* Date/Publication: 2023-08-09 04:20:10 UTC -* Number of recursive dependencies: 153 +* Date/Publication: 2024-03-03 09:12:36 UTC +* Number of recursive dependencies: 154 -Run `revdep_details(, "RAINBOWR")` for more info +Run `revdepcheck::revdep_details(, "RAINBOWR")` for more info
@@ -421,22 +861,86 @@ Run `revdep_details(, "RAINBOWR")` for more info * checking installed package size ... NOTE ``` - installed size is 38.0Mb + installed size is 42.9Mb sub-directories of 1Mb or more: - libs 36.6Mb + libs 41.5Mb + ``` + +# receptiviti + +
+ +* Version: 0.1.8 +* GitHub: https://github.com/Receptiviti/receptiviti-r +* Source code: https://github.com/cran/receptiviti +* Date/Publication: 2024-03-29 18:00:03 UTC +* Number of recursive dependencies: 66 + +Run `revdepcheck::revdep_details(, "receptiviti")` for more info + +
+ +## In both + +* checking tests ... + ``` + Running ‘testthat.R’ + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Complete output: + > library(testthat) + > library(receptiviti) + > + > test_check("receptiviti") + Status: ERROR + Message: Invalid header received from client. + ... + 7. └─receptiviti::receptiviti(...) + ── Failure ('test-receptiviti_status.R:5:3'): failures works ─────────────────── + receptiviti_status(...) is not NULL + + `actual` is a list + `expected` is NULL + + [ FAIL 2 | WARN 0 | SKIP 2 | PASS 6 ] + Error: Test failures + Execution halted + ``` + +# rTwig + +
+ +* Version: 1.1.0 +* GitHub: https://github.com/aidanmorales/rTwig +* Source code: https://github.com/cran/rTwig +* Date/Publication: 2024-08-21 00:50:02 UTC +* Number of recursive dependencies: 148 + +Run `revdepcheck::revdep_details(, "rTwig")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 8.0Mb + sub-directories of 1Mb or more: + libs 6.1Mb ``` # sentopics
-* Version: 0.7.2 +* Version: 0.7.4 * GitHub: https://github.com/odelmarcelle/sentopics * Source code: https://github.com/cran/sentopics -* Date/Publication: 2023-05-28 09:50:02 UTC +* Date/Publication: 2024-09-20 12:20:02 UTC * Number of recursive dependencies: 172 -Run `revdep_details(, "sentopics")` for more info +Run `revdepcheck::revdep_details(, "sentopics")` for more info
@@ -444,7 +948,7 @@ Run `revdep_details(, "sentopics")` for more info * checking installed package size ... NOTE ``` - installed size is 8.1Mb + installed size is 8.3Mb sub-directories of 1Mb or more: data 1.2Mb libs 6.2Mb @@ -464,29 +968,29 @@ Run `revdep_details(, "sentopics")` for more info
-* Version: 4.3.0.1 +* Version: 5.1.0 * GitHub: https://github.com/satijalab/seurat * Source code: https://github.com/cran/Seurat -* Date/Publication: 2023-06-22 07:04:04 UTC -* Number of recursive dependencies: 254 +* Date/Publication: 2024-05-10 17:23:17 UTC +* Number of recursive dependencies: 267 -Run `revdep_details(, "Seurat")` for more info +Run `revdepcheck::revdep_details(, "Seurat")` for more info
## In both -* checking C++ specification ... NOTE +* checking package dependencies ... NOTE ``` - Specified C++11: please drop specification unless essential + Packages suggested but not available for checking: 'BPCells', 'presto' ``` * checking installed package size ... NOTE ``` - installed size is 14.6Mb + installed size is 16.0Mb sub-directories of 1Mb or more: - R 1.4Mb - libs 12.4Mb + R 1.7Mb + libs 13.5Mb ``` * checking Rd cross-references ... NOTE @@ -498,18 +1002,33 @@ Run `revdep_details(, "Seurat")` for more info
-* Version: 4.1.3 -* GitHub: https://github.com/mojaveazure/seurat-object +* Version: 5.0.2 +* GitHub: https://github.com/satijalab/seurat-object * Source code: https://github.com/cran/SeuratObject -* Date/Publication: 2022-11-07 18:50:02 UTC -* Number of recursive dependencies: 57 +* Date/Publication: 2024-05-08 13:40:06 UTC +* Number of recursive dependencies: 102 -Run `revdep_details(, "SeuratObject")` for more info +Run `revdepcheck::revdep_details(, "SeuratObject")` for more info
## In both +* checking package dependencies ... NOTE + ``` + Package suggested but not available for checking: ‘BPCells’ + + Package which this enhances but not available for checking: ‘Seurat’ + ``` + +* checking installed package size ... NOTE + ``` + installed size is 6.1Mb + sub-directories of 1Mb or more: + R 2.0Mb + libs 3.2Mb + ``` + * checking Rd cross-references ... NOTE ``` Package unavailable to check Rd xrefs: ‘plotly’ @@ -519,13 +1038,13 @@ Run `revdep_details(, "SeuratObject")` for more info
-* Version: 2.12 +* Version: 2.17.1 * GitHub: https://github.com/philchalmers/SimDesign * Source code: https://github.com/cran/SimDesign -* Date/Publication: 2023-07-07 16:40:02 UTC -* Number of recursive dependencies: 124 +* Date/Publication: 2024-08-17 05:00:02 UTC +* Number of recursive dependencies: 136 -Run `revdep_details(, "SimDesign")` for more info +Run `revdepcheck::revdep_details(, "SimDesign")` for more info
@@ -533,58 +1052,78 @@ Run `revdep_details(, "SimDesign")` for more info * checking installed package size ... NOTE ``` - installed size is 5.7Mb + installed size is 7.3Mb sub-directories of 1Mb or more: - doc 5.2Mb + doc 6.5Mb + ``` + +# skpr + +
+ +* Version: 1.7.1 +* GitHub: https://github.com/tylermorganwall/skpr +* Source code: https://github.com/cran/skpr +* Date/Publication: 2024-03-26 01:30:02 UTC +* Number of recursive dependencies: 153 + +Run `revdepcheck::revdep_details(, "skpr")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 59.6Mb + sub-directories of 1Mb or more: + libs 59.0Mb ``` # smoots
-* Version: 1.1.3 +* Version: 1.1.4 * GitHub: NA * Source code: https://github.com/cran/smoots -* Date/Publication: 2021-10-09 21:10:02 UTC -* Number of recursive dependencies: 77 +* Date/Publication: 2023-09-11 08:50:02 UTC +* Number of recursive dependencies: 75 -Run `revdep_details(, "smoots")` for more info +Run `revdepcheck::revdep_details(, "smoots")` for more info
## In both -* checking C++ specification ... NOTE +* checking installed package size ... NOTE ``` - Specified C++11: please drop specification unless essential + installed size is 5.2Mb + sub-directories of 1Mb or more: + libs 4.5Mb ``` # sphunif
-* Version: 1.0.1 +* Version: 1.4.0 * GitHub: https://github.com/egarpor/sphunif * Source code: https://github.com/cran/sphunif -* Date/Publication: 2021-09-02 07:40:02 UTC -* Number of recursive dependencies: 76 +* Date/Publication: 2024-05-24 21:50:01 UTC +* Number of recursive dependencies: 75 -Run `revdep_details(, "sphunif")` for more info +Run `revdepcheck::revdep_details(, "sphunif")` for more info
## In both -* checking C++ specification ... NOTE - ``` - Specified C++11: please drop specification unless essential - ``` - * checking installed package size ... NOTE ``` - installed size is 24.2Mb + installed size is 25.1Mb sub-directories of 1Mb or more: - libs 23.4Mb + libs 24.0Mb ``` * checking data for non-ASCII characters ... NOTE @@ -596,13 +1135,13 @@ Run `revdep_details(, "sphunif")` for more info
-* Version: 0.4.3.7 +* Version: 0.4.4.3 * GitHub: https://github.com/JeremyGelb/spNetwork * Source code: https://github.com/cran/spNetwork -* Date/Publication: 2023-04-11 15:50:02 UTC -* Number of recursive dependencies: 150 +* Date/Publication: 2024-06-21 21:40:02 UTC +* Number of recursive dependencies: 143 -Run `revdep_details(, "spNetwork")` for more info +Run `revdepcheck::revdep_details(, "spNetwork")` for more info
@@ -610,52 +1149,71 @@ Run `revdep_details(, "spNetwork")` for more info * checking installed package size ... NOTE ``` - installed size is 25.5Mb + installed size is 27.6Mb sub-directories of 1Mb or more: - doc 1.0Mb extdata 2.6Mb - libs 20.5Mb + libs 22.6Mb ``` -# SPQR +# squat
-* Version: 0.1.0 -* GitHub: https://github.com/stevengxu/SPQR -* Source code: https://github.com/cran/SPQR -* Date/Publication: 2022-05-02 20:02:03 UTC -* Number of recursive dependencies: 65 +* Version: 0.3.0 +* GitHub: https://github.com/LMJL-Alea/squat +* Source code: https://github.com/cran/squat +* Date/Publication: 2024-01-10 15:40:02 UTC +* Number of recursive dependencies: 141 -Run `revdep_details(, "SPQR")` for more info +Run `revdepcheck::revdep_details(, "squat")` for more info
## In both -* checking C++ specification ... NOTE +* checking installed package size ... NOTE ``` - Specified C++11: please drop specification unless essential + installed size is 19.9Mb + sub-directories of 1Mb or more: + data 1.1Mb + help 1.1Mb + libs 17.5Mb ``` -* checking dependencies in R code ... NOTE +# stppSim + +
+ +* Version: 1.3.4 +* GitHub: https://github.com/Manalytics/stppSim +* Source code: https://github.com/cran/stppSim +* Date/Publication: 2024-07-24 13:30:02 UTC +* Number of recursive dependencies: 131 + +Run `revdepcheck::revdep_details(, "stppSim")` for more info + +
+ +## In both + +* checking whether package ‘stppSim’ can be installed ... WARNING ``` - Namespaces in Imports field not imported from: - ‘Rcpp’ ‘progress’ - All declared Imports should be used. + Found the following significant warnings: + Warning: no DISPLAY variable so Tk is not available + See ‘/c4/home/henrik/repositories/progressr/revdep/checks/stppSim/new/stppSim.Rcheck/00install.out’ for details. ``` -# squat +# targeted
-* Version: 0.2.1 -* GitHub: https://github.com/LMJL-Alea/squat -* Source code: https://github.com/cran/squat -* Date/Publication: 2023-07-09 09:10:05 UTC -* Number of recursive dependencies: 134 +* Version: 0.5 +* GitHub: https://github.com/kkholst/targeted +* Source code: https://github.com/cran/targeted +* Date/Publication: 2024-02-22 10:00:21 UTC +* Number of recursive dependencies: 97 -Run `revdep_details(, "squat")` for more info +Run `revdepcheck::revdep_details(, "targeted")` for more info
@@ -663,39 +1221,105 @@ Run `revdep_details(, "squat")` for more info * checking installed package size ... NOTE ``` - installed size is 19.2Mb + installed size is 23.0Mb sub-directories of 1Mb or more: - data 1.1Mb - help 1.1Mb - libs 16.9Mb + doc 1.1Mb + libs 21.3Mb ``` -# targeted +# tsdistributions
-* Version: 0.3 -* GitHub: https://github.com/kkholst/targeted -* Source code: https://github.com/cran/targeted -* Date/Publication: 2022-10-25 20:30:02 UTC -* Number of recursive dependencies: 95 +* Version: 1.0.2 +* GitHub: https://github.com/tsmodels/tsdistributions +* Source code: https://github.com/cran/tsdistributions +* Date/Publication: 2024-08-23 04:20:02 UTC +* Number of recursive dependencies: 79 -Run `revdep_details(, "targeted")` for more info +Run `revdepcheck::revdep_details(, "tsdistributions")` for more info
## In both -* checking C++ specification ... NOTE +* checking re-building of vignette outputs ... ERROR ``` - Specified C++11: please drop specification unless essential + Error(s) in re-building vignettes: + ... + --- re-building ‘estimation_demo.Rmd’ using rmarkdown + --- finished re-building ‘estimation_demo.Rmd’ + + --- re-building ‘location_scale_distributions.Rmd’ using rmarkdown + ! Undefined control sequence. + l.56 \NewDocumentCommand + \citeproctext{}{} + + ... + --- finished re-building ‘profile_demo.Rmd’ + + --- re-building ‘spd_demo.Rmd’ using rmarkdown + --- finished re-building ‘spd_demo.Rmd’ + + SUMMARY: processing the following file failed: + ‘location_scale_distributions.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +* checking installed package size ... NOTE + ``` + installed size is 42.8Mb + sub-directories of 1Mb or more: + libs 42.1Mb + ``` + +# tsgarch + +
+ +* Version: 1.0.3 +* GitHub: https://github.com/tsmodels/tsgarch +* Source code: https://github.com/cran/tsgarch +* Date/Publication: 2024-10-12 00:50:02 UTC +* Number of recursive dependencies: 100 + +Run `revdepcheck::revdep_details(, "tsgarch")` for more info + +
+ +## In both + +* checking installed package size ... NOTE + ``` + installed size is 144.2Mb + sub-directories of 1Mb or more: + libs 143.1Mb ``` +# vital + +
+ +* Version: 1.1.0 +* GitHub: https://github.com/robjhyndman/vital +* Source code: https://github.com/cran/vital +* Date/Publication: 2024-06-21 08:00:02 UTC +* Number of recursive dependencies: 201 + +Run `revdepcheck::revdep_details(, "vital")` for more info + +
+ +## In both + * checking installed package size ... NOTE ``` - installed size is 16.8Mb + installed size is 6.0Mb sub-directories of 1Mb or more: - libs 15.7Mb + data 4.4Mb + help 1.3Mb ``` # vmeasur @@ -706,9 +1330,9 @@ Run `revdep_details(, "targeted")` for more info * GitHub: NA * Source code: https://github.com/cran/vmeasur * Date/Publication: 2021-11-11 19:00:02 UTC -* Number of recursive dependencies: 118 +* Number of recursive dependencies: 107 -Run `revdep_details(, "vmeasur")` for more info +Run `revdepcheck::revdep_details(, "vmeasur")` for more info @@ -725,13 +1349,13 @@ Run `revdep_details(, "vmeasur")` for more info
-* Version: 1.6-4 +* Version: 1.8-0 * GitHub: NA * Source code: https://github.com/cran/WeightedCluster -* Date/Publication: 2023-07-07 07:50:02 UTC -* Number of recursive dependencies: 43 +* Date/Publication: 2024-10-02 15:30:02 UTC +* Number of recursive dependencies: 45 -Run `revdep_details(, "WeightedCluster")` for more info +Run `revdepcheck::revdep_details(, "WeightedCluster")` for more info
@@ -741,22 +1365,22 @@ Run `revdep_details(, "WeightedCluster")` for more info ``` Error(s) in re-building vignettes: --- re-building ‘WeightedCluster.Rnw’ using knitr + Warning in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, : + texi2dvi script/program not available, using emulation --- finished re-building ‘WeightedCluster.Rnw’ --- re-building ‘WeightedClusterFR.Rnw’ using knitr - --- finished re-building ‘WeightedClusterFR.Rnw’ - - --- re-building ‘WeightedClusterPreview.Rnw’ using knitr - Error: processing vignette 'WeightedClusterPreview.Rnw' failed with diagnostics: - Running 'texi2dvi' on 'WeightedClusterPreview.tex' failed. + Warning in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, : + texi2dvi script/program not available, using emulation + Error: processing vignette 'WeightedClusterFR.Rnw' failed with diagnostics: ... l.85 \usepackage {tikz}^^M ! ==> Fatal error occurred, no output PDF file produced! --- failed re-building ‘WeightedClusterPreview.Rnw’ - SUMMARY: processing the following file failed: - ‘WeightedClusterPreview.Rnw’ + SUMMARY: processing the following files failed: + ‘WeightedClusterFR.Rnw’ ‘WeightedClusterPreview.Rnw’ Error: Vignette re-building failed. Execution halted From 73949428e72b0143bfd6b9dea4a6d7e19fb5dd4f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 19:43:07 -0700 Subject: [PATCH 31/32] CRAN submission --- cran-comments.md | 82 +----------------------------------------------- 1 file changed, 1 insertion(+), 81 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index cc3543f..24f3b92 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,83 +1,3 @@ -# CRAN submission progressr 0.14.0 - -on 2023-08-10 - -I've verified this submission has no negative impact on any of the 82 reverse package dependencies available on CRAN (n = 79) and Bioconductor (n = 3). +I've verified this submission has no negative impact on any of the 110 reverse package dependencies available on CRAN (n = 107) and Bioconductor (n = 3). Thank you - -## Resubmission - -Updated version fixing an R CMD check WARNING reported by R-devel on Debian. - - -## Notes not sent to CRAN - -### R CMD check validation - -The package has been verified using `R CMD check --as-cran` on: - -| R version | GitHub | R-hub | mac/win-builder | -| --------- | ------ | ----- | --------------- | -| 3.5.x | L | | | -| 4.0.x | L | | | -| 4.1.x | L | | | -| 4.2.x | L | | | -| 4.3.x | L M W | L W | M1 W | -| devel | L M W | L | W | - -*Legend: OS: L = Linux, M = macOS, M1 = macOS M1, W = Windows* - - -R-hub checks: - -```r -res <- rhub::check(platforms = c( - "debian-clang-devel", - "debian-gcc-patched", - "fedora-gcc-devel", - "macos-highsierra-release-cran", - "windows-x86_64-release" -)) -print(res) -``` - -gives - -``` -── progressr 0.13.0-9013: OK - - Build ID: progressr_0.13.0-9013.tar.gz-d76d5bc4979b480fa1e4bbe0c5d705a1 - Platform: Debian Linux, R-devel, clang, ISO-8859-15 locale - Submitted: 17m 26.7s ago - Build time: 17m 23.3s - -0 errors ✔ | 0 warnings ✔ | 0 notes ✔ - -── progressr 0.13.0-9013: OK - - Build ID: progressr_0.13.0-9013.tar.gz-bbc8cdfc4d0241ebb3d0129420c7fed4 - Platform: Debian Linux, R-patched, GCC - Submitted: 17m 26.7s ago - Build time: 16m 17.3s - -0 errors ✔ | 0 warnings ✔ | 0 notes ✔ - -── progressr 0.13.0-9013: OK - - Build ID: progressr_0.13.0-9013.tar.gz-71676aa30ce74ff7931c996a95e7b327 - Platform: Fedora Linux, R-devel, GCC - Submitted: 17m 26.7s ago - Build time: 15m 0.3s - -0 errors ✔ | 0 warnings ✔ | 0 notes ✔ - -── progressr 0.13.0-9013: OK - - Build ID: progressr_0.13.0-9013.tar.gz-29b149c623ba4eea91841fd5a9fc6ac7 - Platform: Windows Server 2022, R-release, 32/64 bit - Submitted: 17m 26.7s ago - Build time: 5m 50.8s - -0 errors ✔ | 0 warnings ✔ | 0 notes ✔ -``` From 4fb8744f50edf29d028c370e4aaf96b0afdd0c3f Mon Sep 17 00:00:00 2001 From: Henrik Bengtsson Date: Mon, 28 Oct 2024 22:43:36 -0700 Subject: [PATCH 32/32] CRAN submission --- .Rbuildignore | 1 + CRAN-SUBMISSION | 3 +++ DESCRIPTION | 2 +- NEWS.md | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 CRAN-SUBMISSION diff --git a/.Rbuildignore b/.Rbuildignore index 006c236..e5c5ae1 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -68,3 +68,4 @@ Rplots.pdf$ ^docs ^pkgdown +^CRAN-SUBMISSION$ diff --git a/CRAN-SUBMISSION b/CRAN-SUBMISSION new file mode 100644 index 0000000..e977346 --- /dev/null +++ b/CRAN-SUBMISSION @@ -0,0 +1,3 @@ +Version: 0.15.0 +Date: 2024-10-29 03:15:56 UTC +SHA: 17f28870f183d82353cd805c54cd23dbc07ad315 diff --git a/DESCRIPTION b/DESCRIPTION index d370007..065ab3b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: progressr -Version: 0.14.0-9011 +Version: 0.15.0 Title: An Inclusive, Unifying API for Progress Updates Description: A minimal, unifying API for scripts and packages to report progress updates from anywhere including when using parallel processing. The package is designed such that the developer can to focus on what progress should be reported on without having to worry about how to present it. The end user has full control of how, where, and when to render these progress updates, e.g. in the terminal using utils::txtProgressBar(), cli::cli_progress_bar(), in a graphical user interface using utils::winProgressBar(), tcltk::tkProgressBar() or shiny::withProgress(), via the speakers using beepr::beep(), or on a file system via the size of a file. Anyone can add additional, customized, progression handlers. The 'progressr' package uses R's condition framework for signaling progress updated. Because of this, progress can be reported from almost anywhere in R, e.g. from classical for and while loops, from map-reduce API:s like the lapply() family of functions, 'purrr', 'plyr', and 'foreach'. It will also work with parallel processing via the 'future' framework, e.g. future.apply::future_lapply(), furrr::future_map(), and 'foreach' with 'doFuture'. The package is compatible with Shiny applications. Authors@R: c(person("Henrik", "Bengtsson", diff --git a/NEWS.md b/NEWS.md index ff1656d..87695d8 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# Version (development version) +# Version 0.15.0 [2023-10-28] ## New Features