The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Type: Package
Title: Tools to Time Pipe Operations
Version: 0.0.1
Description: Enable users to measure and record the execution time of pipe operations (using |>) with optional logging to dataframes and output to the console.
License: MIT + file LICENSE
Encoding: UTF-8
Suggests: testthat (≥ 3.0.0), crayon, dplyr, ggplot2, stringr, tictoc, knitr, rmarkdown
Config/testthat/edition: 3
RoxygenNote: 7.3.3
URL: https://cygei.github.io/pipetime/; https://github.com/CyGei/pipetime
BugReports: https://github.com/CyGei/pipetime/issues
VignetteBuilder: knitr
NeedsCompilation: no
Packaged: 2025-09-29 19:13:44 UTC; cy
Author: Cyril Geismar ORCID iD [aut, cre, cph]
Maintainer: Cyril Geismar <c.geismar21@imperial.ac.uk>
Depends: R (≥ 4.1.0)
Repository: CRAN
Date/Publication: 2025-10-08 19:50:14 UTC

Retrieve a timing log (or all logs)

Description

Return a stored timing log from .pipetime_env. If log = NULL, return all logs as a named list.

Usage

get_log(log = NULL)

Arguments

log

Character string or NULL. Name of the log to retrieve. If NULL, all logs are returned.

Value

Either:

See Also

rm_log()


Remove a timing log (or all logs)

Description

Delete a timing log from .pipetime_env. If log = NULL, all logs are removed, but only when force = TRUE.

Usage

rm_log(log = NULL, force = FALSE)

Arguments

log

Character string or NULL. Name of the log to remove. If NULL, all logs are targeted.

force

Logical. To remove all logs, force must be TRUE. Default: FALSE.

Value

Invisibly, TRUE.

See Also

get_log()


Measure execution time in a pipeline

Description

Records the runtime of a pipeline (⁠|>⁠) from its start to the point where time_pipe() is called. Prints results to the console and/or logs them in .pipetime_env. Defaults can be set via ⁠options(pipetime.*)⁠.

Usage

time_pipe(
  .data,
  label = NULL,
  log = getOption("pipetime.log", NULL),
  console = getOption("pipetime.console", TRUE),
  unit = getOption("pipetime.unit", "secs")
)

Arguments

.data

Input object passed through the pipeline.

label

Character string. Operation name. Defaults to the expression if NULL.

log

Character string or NULL. Name of a log data frame in .pipetime_env. Default: NULL.

console

Logical. Print timing to console? Default: TRUE.

unit

Character string. Time unit for base::difftime(). One of "secs", "mins", "hours", "days", "weeks". Default: "secs".

Details

time_pipe() measures elapsed time from pipeline start to the call. If log is set, results are appended to a data frame in .pipetime_env with columns:

Stored logs can be retrieved with get_log().

Value

.data, unchanged. Timing information is printed and/or stored separately.

Examples

library(dplyr)
data.frame(x = 1:3) |>
mutate(y = {Sys.sleep(0.5); x*2 }) |>
time_pipe("calc 1") |>
mutate(z = {Sys.sleep(0.5); x/2 }) |>
time_pipe("total pipeline")

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.