R/00utils.R

Defines functions recursive_lapply

# parses from/to params for get_measurements_ and get_boxes_
parse_dateparams = function (from, to) {
  from = date_as_utc(from)
  to = date_as_utc(to)
  if (from - to > 0) stop('"from" must be earlier than "to"')
  c(date_as_isostring(from), date_as_isostring(to))
}

# NOTE: cannot handle mixed vectors of POSIXlt and POSIXct
date_as_utc = function (date) {
  time = as.POSIXct(date)
  attr(time, 'tzone') = 'UTC'
  time
}

# NOTE: cannot handle mixed vectors of POSIXlt and POSIXct
date_as_isostring = function (date) format.Date(date, format = '%FT%TZ')

isostring_as_date = function (x) as.POSIXct(strptime(x, format = '%FT%T', tz = 'GMT'))

#' Checks for an interactive session using interactive() and a knitr process in
#' the callstack. See https://stackoverflow.com/a/33108841
#'
#' @noRd
is_non_interactive = function () {
  ff = sapply(sys.calls(), function(f) as.character(f[1]))
  any(ff %in% c('knit2html', 'render')) || !interactive()
}

#' custom recursive lapply with better handling of NULL values
#' from https://stackoverflow.com/a/38950304
#' @noRd
recursive_lapply = function(x, fn) {
  if (is.list(x))
    lapply(x, recursive_lapply, fn)
  else
    fn(x)
}

Try the opensensmapr package in your browser

Any scripts or data that you put into this service are public.

opensensmapr documentation built on March 31, 2023, 11:45 p.m.