Hello,
Thanks so much for making this package available!
I have been using the chain_start and chain_end functions to link various assertions together. However, I noticed that this appears to add an "assertr_in_chain_success_fun_override" attribute to the dataframe, if it is redefined through the chaining process. This does not occur when chaining is omitted. See the minimum working example below.
library(assertr)
df <- data.frame(X1 = letters, X2 = seq(1,26))
## With chaining
df_with <- df |>
chain_start() |>
assert(is_uniq, X1, X2) |>
assert(is.character, X1) |>
assert(is.numeric, X2) |>
chain_end()
attributes(df_with)
#$names
#[1] "X1" "X2"
#$class
#[1] "data.frame"
#$row.names
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#$assertr_in_chain_success_fun_override
#function (data, ...)
#{
# return(data)
#}
#<bytecode: 0x0000023be0ad13c8>
#<environment: namespace:assertr>
## Without chaining
df_without <- df |>
assert(is_uniq, X1, X2) |>
assert(is.character, X1) |>
assert(is.numeric, X2)
attributes(df_without)
#$names
#[1] "X1" "X2"
#$class
#[1] "data.frame"
#$row.names
#[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Is this the anticipated behaviour? Perhaps I'm not using the package in the intended manner?
My intended use case is to compare if the "asserted" dataframe is identical to another where the additional attribute causes the comparison to fail. After a set of chained assertions, would it be possible to return a "clean" dataframe with the "assertr_in_chain_success_fun_override" attribute removed?
Hello,
Thanks so much for making this package available!
I have been using the
chain_startandchain_endfunctions to link various assertions together. However, I noticed that this appears to add an "assertr_in_chain_success_fun_override" attribute to the dataframe, if it is redefined through the chaining process. This does not occur when chaining is omitted. See the minimum working example below.Is this the anticipated behaviour? Perhaps I'm not using the package in the intended manner?
My intended use case is to compare if the "asserted" dataframe is identical to another where the additional attribute causes the comparison to fail. After a set of chained assertions, would it be possible to return a "clean" dataframe with the "assertr_in_chain_success_fun_override" attribute removed?