diff --git a/R/yaml_read_agent.R b/R/yaml_read_agent.R index c00944d11..4816c4dad 100644 --- a/R/yaml_read_agent.R +++ b/R/yaml_read_agent.R @@ -562,6 +562,12 @@ make_validation_steps <- function(steps) { FUN = function(x) { step_i <- steps[[x]] + + # Handle scalar steps (no arguments): `- rows_distinct` in YAML + if (is.character(step_i)) { + return(paste0("%>%\n", step_i, "()")) + } + step_fn <- names(step_i) args <- diff --git a/R/yaml_write.R b/R/yaml_write.R index e8a43dde6..b09fae86f 100644 --- a/R/yaml_write.R +++ b/R/yaml_write.R @@ -181,9 +181,8 @@ #' columns: c(date, date_time) #' - col_vals_regex: #' columns: c(b) -#' regex: '[0-9]-[a-z]{3}-[0-9]{3}' -#' - rows_distinct: -#' columns: ~ +#' pattern: '[0-9]-[a-z]{3}-[0-9]{3}' +#' - rows_distinct #' - col_vals_gt: #' columns: c(d) #' value: 100.0 @@ -621,9 +620,8 @@ yaml_write <- function( #' columns: vars(date_time) #' - col_vals_regex: #' columns: vars(b) -#' regex: '[0-9]-[a-z]{3}-[0-9]{3}' -#' - rows_distinct: -#' columns: ~ +#' pattern: '[0-9]-[a-z]{3}-[0-9]{3}' +#' - rows_distinct #' - col_vals_gt: #' columns: vars(d) #' value: 100.0 diff --git a/inst/yaml/agent-small_table.yml b/inst/yaml/agent-small_table.yml index 90abf5670..9ef7ff8fa 100644 --- a/inst/yaml/agent-small_table.yml +++ b/inst/yaml/agent-small_table.yml @@ -16,8 +16,7 @@ steps: - col_vals_regex: columns: vars(b) pattern: '[0-9]-[a-z]{3}-[0-9]{3}' -- rows_distinct: - columns: ~ +- rows_distinct - col_vals_gt: columns: vars(d) value: 100.0 diff --git a/vignettes/YAML.Rmd b/vignettes/YAML.Rmd index 421f19c25..2510e0ece 100644 --- a/vignettes/YAML.Rmd +++ b/vignettes/YAML.Rmd @@ -170,8 +170,7 @@ steps: pattern: '^[0-9]-[a-z]{3}-[0-9]{3}$' # rows_distinct() - - rows_distinct: - columns: ~ + - rows_distinct ``` Arguments that use R expressions (like column selections via `vars()`) are stored as strings and evaluated when the YAML is read back.