Simplified cli progress message for combining with a pipe
Source:R/cli_progress_pipe.R
cli_progress_pipe.RdA convenience function for creating progress messages that use piped data as an input.
Usage
cli_progress_pipe(
data,
...,
current = TRUE,
clear = FALSE,
.auto_close = TRUE,
.envir = current_env(),
time = NULL
)Arguments
- data
Input data. Reference w/ "data" if .envir is currrent_env().
- ...
Arguments passed on to
cli::cli_progress_barnameThis is typically used as a label, and should be short, at most 20 characters.
statusNew status string of the progress bar, if not
NULL.typeType of the progress bar. It is used to select a default display if
formatis not specified. Currently supported types:iterator: e.g. a for loop or a mapping function,tasks: a (typically small) number of tasks,download: download of one file,custom: custom type,formatmust not beNULLfor this type.
totalTotal number of progress units, or
NAif it is unknown.cli_progress_update()can update the total number of units. This is handy if you don't know the size of a download at the beginning, and also in some other cases. Ifformatis set toNULL,format(plusformat_doneandformat_failed) will be updated when you changetotalfromNAto a number. I.e. default format strings will be updated, custom ones won't be.formatFormat string. It has to be specified for custom progress bars, otherwise it is optional, and a default display is selected based on the progress bat type and whether the number of total units is known. Format strings may contain glue substitution, the support pluralization and cli styling. See progress-variables for special variables that you can use in the custom format.
format_doneFormat string for successful termination. By default the same as
format.format_failedFormat string for unsuccessful termination. By default the same as
format.auto_terminateWhether to terminate the progress bar if the number of current units reaches the number of total units.
extraExtra data to add to the progress bar. This can be used in custom format strings for example. It should be a named list.
cli_progress_update()can update the extra data. Often you can get away with referring to local variables in the format string, and then you don't need to use this argument. Explicitly including these constants or variables inextracan result in cleaner code. In the rare cases when you need to refer to the same progress bar from multiple functions, and you can them toextra.
- current
Passed to
cli_progress_bar().- clear
Whether to remove the progress bar from the screen after it has terminated. Defaults to
FALSE(cli::cli_progress_bar()usesTRUE).- .auto_close
Passed to
cli_progress_bar().- .envir
The environment to use for auto-termination and for glue substitution. It is also used to find and set the current progress bar. Defaults to
current_env()(cli::cli_progress_bar()usesparent.frame())- time
Passed to
Sys.sleep()for optional pause after displaying progress message. Defaults toNULL.
Examples
df <- data.frame("letters" = LETTERS, "numbers" = c(1:26))
df |>
cli_progress_pipe("Data has {nrow(data)} rows and {ncol(data)} columns.") |>
head(2)
#> Data has 26 rows and 2 columns.
#> Data has 26 rows and 2 columns.
#>
#> letters numbers
#> 1 A 1
#> 2 B 2