Nothing
with_np_progress_bindings <- function(bindings, code) {
code <- substitute(code)
ns <- asNamespace("np")
old <- lapply(names(bindings), function(name) get(name, envir = ns, inherits = FALSE))
names(old) <- names(bindings)
for (name in names(bindings)) {
was_locked <- bindingIsLocked(name, ns)
if (was_locked) {
unlockBinding(name, ns)
}
assign(name, bindings[[name]], envir = ns)
if (was_locked) {
lockBinding(name, ns)
}
}
on.exit({
for (name in names(old)) {
was_locked <- bindingIsLocked(name, ns)
if (was_locked) {
unlockBinding(name, ns)
}
assign(name, old[[name]], envir = ns)
if (was_locked) {
lockBinding(name, ns)
}
}
}, add = TRUE)
eval(code, envir = parent.frame())
}
capture_progress_shadow_trace <- function(expr,
force_renderer = NULL,
now = function() 0,
interactive = TRUE) {
expr_env <- parent.frame()
expr <- substitute(expr)
trace <- list()
recorder <- function(snapshot, event = c("render", "finish", "abort")) {
event <- match.arg(event)
if (isTRUE(getFromNamespace(".np_progress_is_message_muffled", "np")())) {
return(invisible(snapshot))
}
trace[[length(trace) + 1L]] <<- list(
event = event,
renderer = force_renderer,
id = snapshot$id,
kind = snapshot$kind,
current = snapshot$current,
total = snapshot$total,
detail = snapshot$detail,
line = snapshot$line,
started_at = snapshot$started_at,
now = snapshot$now,
last_width = snapshot$last_width
)
invisible(snapshot)
}
value <- with_np_progress_bindings(
c(
if (!is.null(force_renderer)) {
list(.np_progress_renderer_for_surface = function(surface, capability) force_renderer)
} else {
list()
},
list(
.np_progress_render_legacy = recorder,
.np_progress_render_single_line = recorder,
.np_progress_is_interactive = function() interactive,
.np_progress_now = now
)
),
{
reset <- getFromNamespace(".np_progress_reset_registry", "np")
reset()
on.exit(reset(), add = TRUE)
eval(expr, envir = expr_env)
}
)
list(
value = value,
trace = trace,
final_line = if (length(trace)) trace[[length(trace)]]$line else NULL
)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.