Skip to contents

This function helps add progress-reporting to any function - given function f() and progressor p(), it will return a new function that calls f() and then (on exiting) will call p() after every iteration. This is inspired by purrr's safely, quietly, and possibly function decorators.

Usage

progressively(f, p = NULL)

Arguments

f

a function to add progressor functionality to.

p

a function such as one created by progressr::progressor() - also accepts purrr-style lambda functions.

Value

a function that does the same as f but it calls p() after iteration.

See also

https://nflreadr.nflverse.com/articles/exporting_nflreadr.html for vignette on exporting nflreadr in packages

Examples

.for_cran()
# \donttest{
try({ # prevents cran errors

urls <- rep("https://github.com/nflverse/nflverse-data/releases/download/test/combines.csv",3)

lapply(urls, progressively(read.csv, ~cli::cli_progress_step('Loading...')))

read_rosters <- function(urls){
  p <- progressr::progressor(along = urls)
  lapply(urls, progressively(read.csv, p))
}

progressr::with_progress(read_rosters())

})
#>  Loading...
#>  Loading... [8ms]
#> 
#>  Loading...
#>  Loading... [6ms]
#> 
#>  Loading...
#>  Loading... [6ms]
#> 
#> Error in read_rosters() : argument "urls" is missing, with no default
# }