igraph / rigraph

igraph R package
https://r.igraph.org
532 stars 200 forks source link

refactor value assertion in R/attributes.R #1321

Closed maelle closed 3 months ago

maelle commented 3 months ago

something like this

 # if (!is.list(value) || (length(value) > 0 && is.null(names(value))) ||
 #    any(names(value) == "") || any(duplicated(names(value)))) 

not_list <- 1:10

unnamed_list <- as.list(1:10)

empty_name <- rlang::set_names(unnamed_list, c(as.character(1:9), ""))

dups <- rlang::set_names(unnamed_list, rep("bla", 10))

assert_named_list <- function(value) {
  if (!is.list(value) || !rlang::is_named(value) || anyDuplicated(names(value)) > 0) {
    rlang::abort("{.arg value} must be a named list with unique names")
  }
}