R/IOin_output_filters.R

Defines functions IOin_output_filters

Documented in IOin_output_filters

#' IOin_output_filters
#'
#' Reads in and/or combines filters into a single R list filter object. Also checks that all filters are valid and contain the required fields
#' with valid options when possible to check.
#' @param ... Any number of valid filter objects (R lists), to be written to the same output filter file.
#' @param file_name The name of the output filter file created. if left NULL an autogenerated file name will be used.
#' @param filter_in Path to an existing yaml filter file.
#'
#' @author Will Burke
#'
#' @export

IOin_output_filters = function(...,
                               file_name = NULL,
                               filter_in = NULL) {

  # ---------- Read in existing yaml filter ----------
  if (!is.null(filter_in)) {
    filter = read_output_filter(filter_in = filter_in)
  } else {
    filter = NULL
  }

  # ---------- Combine filters ----------
  list_in = c(unlist(list(...), recursive = F))
  if (length(list_in) > 0 && is.list(list_in)) {
    testvalid = lapply(X = list_in, FUN = valid_filter)
    filter = c(filter, list_in)
  } else {
    cat("Invalid input to '...' input argument.")
  }

  if (!is.null(file_name)) {
    filter$file_name = file_name
  }

  return(filter)
}
ryanrbart/rhessysR documentation built on March 29, 2024, 4:30 p.m.