Skip to content

Issue in progress (documentation) #557

Closed
@JBGruber

Description

@JBGruber

I looks like the documentation of ?httr2::progress_bars is wrong:

httr2/R/progress-bars.R

Lines 33 to 35 in 5380f21

#' * `show_after`: numeric scalar. Only show the progress bar after this
#' number of seconds. It overrides the `cli.progress_show_after`
#' global option.

Here is a reproducible example:

library(httr2)
req <- request(example_url()) |> 
  req_url_path("/delay/0.5")

reqs <- rep(list(req), 15)

pb_config <- list(
  show_after = 0
)

resps <- httr2::req_perform_parallel(
  reqs = reqs,
  on_error = "continue",
  progress = pb_config
)

It fails with:

Error in (function (name = NULL, status = NULL, type = c("iterator", "tasks",  : 
  unused argument (show_after = 0)

I tried to track down where the progress is handed to cli and I think that's here for the case of a named list:

httr2/R/utils.R

Line 278 in 5380f21

id <- exec(cli::cli_progress_bar, !!!args)

However, cli::cli_progress_bar lost the show_after parameter a while ago.

A workaround would be to set cli.progress_show_after temporarily:

req_perform_parallel2 <- function(..., progress) {
  show_after <- progress$show_after
  progress$show_after <- NULL
  resps <- withr::with_options(
    list(cli.progress_show_after = show_after), 
    httr2::req_perform_parallel(..., progress = progress)
  )
}

resps <- req_perform_parallel2(
  reqs = reqs,
  on_error = "continue",
  progress = pb_config
)

Happy to make a PR either fixing the documentation or the function with the workaround.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions