| 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  | 
| 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   | 
Value
Either:
A data frame with columns:
-  
timestamp(POSIXct): Pipeline start time -  
label(character): Operation label -  
duration(numeric): Elapsed time since pipeline start -  
unit(character): Time unit used 
-  
 Or, if
log = NULL, a named list of such data frames.
See Also
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   | 
force | 
 Logical. To remove all logs,   | 
Value
Invisibly, TRUE.
See Also
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   | 
log | 
 Character string or   | 
console | 
 Logical. Print timing to console? Default:   | 
unit | 
 Character string. Time unit for   | 
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:
-  
timestamp: Pipeline start time (POSIXct) -  
label: Operation label -  
duration: Elapsed time since pipeline start (numeric) -  
unit: Time unit used 
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")