From c6aa51ef1dc57bba9e877a93dd84fd1e4ee647ab Mon Sep 17 00:00:00 2001 From: Etienne Bacher <52219252+etiennebacher@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:33:50 +0100 Subject: [PATCH 1/4] add "never" in quote_style --- NEWS.md | 5 + R/dataframe__frame.R | 8 +- man/IO_sink_csv.Rd | 2 + man/IO_write_csv.Rd | 2 + src/rust/src/utils/mod.rs | 5 +- tests/testthat/_snaps/csv-write.md | 301 ++------------------------- tests/testthat/_snaps/sink_stream.md | 301 ++------------------------- tests/testthat/test-csv-write.R | 8 +- tests/testthat/test-sink_stream.R | 8 +- 9 files changed, 52 insertions(+), 588 deletions(-) diff --git a/NEWS.md b/NEWS.md index b071b8391..4ac907af7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # polars (development version) +## What's changed + +- The argument `quote_style` in `$write_csv()` and `$sink_csv()` can now take + the value `"never"`. + # polars 0.10.0 ## BREAKING CHANGES DUE TO RUST-POLARS UPDATE diff --git a/R/dataframe__frame.R b/R/dataframe__frame.R index 93a35797a..ad4ccd4cf 100644 --- a/R/dataframe__frame.R +++ b/R/dataframe__frame.R @@ -1749,11 +1749,9 @@ DataFrame_transpose = function( #' * `"non_numeric"`: This puts quotes around all fields that are non-numeric. #' Namely, when writing a field that does not parse as a valid float or integer, #' then quotes will be used even if they aren`t strictly necessary. - -# TODO: include "never" when bumping rust-polars to 0.34 -# * `"never"`: This never puts quotes around fields, even if that results in -# invalid CSV data (e.g.: by not quoting strings containing the separator). - +#' * `"never"`: This never puts quotes around fields, even if that results in +#' invalid CSV data (e.g. by not quoting strings containing the separator). +#' #' @return #' This doesn't return anything but creates a CSV file. #' diff --git a/man/IO_sink_csv.Rd b/man/IO_sink_csv.Rd index 642310d04..187ec4577 100644 --- a/man/IO_sink_csv.Rd +++ b/man/IO_sink_csv.Rd @@ -68,6 +68,8 @@ default. \item \code{"non_numeric"}: This puts quotes around all fields that are non-numeric. Namely, when writing a field that does not parse as a valid float or integer, then quotes will be used even if they aren`t strictly necessary. +\item \code{"never"}: This never puts quotes around fields, even if that results in +invalid CSV data (e.g. by not quoting strings containing the separator). }} \item{maintain_order}{Keep the same order as the original \code{DataFrame}. Setting diff --git a/man/IO_write_csv.Rd b/man/IO_write_csv.Rd index bf9ed3fc6..ac4baf4b6 100644 --- a/man/IO_write_csv.Rd +++ b/man/IO_write_csv.Rd @@ -60,6 +60,8 @@ default. \item \code{"non_numeric"}: This puts quotes around all fields that are non-numeric. Namely, when writing a field that does not parse as a valid float or integer, then quotes will be used even if they aren`t strictly necessary. +\item \code{"never"}: This never puts quotes around fields, even if that results in +invalid CSV data (e.g. by not quoting strings containing the separator). }} } \value{ diff --git a/src/rust/src/utils/mod.rs b/src/rust/src/utils/mod.rs index 9b2a02470..669d0e8e4 100644 --- a/src/rust/src/utils/mod.rs +++ b/src/rust/src/utils/mod.rs @@ -588,10 +588,9 @@ pub fn robj_to_quote_style(robj: Robj) -> RResult { "always" => Ok(pl::QuoteStyle::Always), "necessary" => Ok(pl::QuoteStyle::Necessary), "non_numeric" => Ok(pl::QuoteStyle::NonNumeric), - // "never" is available in rust-polars devel only for now (will be added in 0.34) - // "never" => Ok(QuoteStyle::Never), + "never" => Ok(pl::QuoteStyle::Never), _ => rerr() - .plain("a `quote_style` must be 'always', 'necessary' or 'non_numeric'.") + .plain("`quote_style` should be one of 'always', 'necessary', 'non_numeric', or 'never'.") .bad_robj(&robj), } } diff --git a/tests/testthat/_snaps/csv-write.md b/tests/testthat/_snaps/csv-write.md index 84c909389..9eb03d25b 100644 --- a/tests/testthat/_snaps/csv-write.md +++ b/tests/testthat/_snaps/csv-write.md @@ -54,150 +54,6 @@ +4.6+,+3.1+,+1.5+,+0.2+,+setosa+ +5.0+,+3.6+,+1.4+,+0.2+,+setosa+ +5.4+,+3.9+,+1.7+,+0.4+,+setosa+ - +4.6+,+3.4+,+1.4+,+0.3+,+setosa+ - +5.0+,+3.4+,+1.5+,+0.2+,+setosa+ - +4.4+,+2.9+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.1+,+1.5+,+0.1+,+setosa+ - +5.4+,+3.7+,+1.5+,+0.2+,+setosa+ - +4.8+,+3.4+,+1.6+,+0.2+,+setosa+ - +4.8+,+3.0+,+1.4+,+0.1+,+setosa+ - +4.3+,+3.0+,+1.1+,+0.1+,+setosa+ - +5.8+,+4.0+,+1.2+,+0.2+,+setosa+ - +5.7+,+4.4+,+1.5+,+0.4+,+setosa+ - +5.4+,+3.9+,+1.3+,+0.4+,+setosa+ - +5.1+,+3.5+,+1.4+,+0.3+,+setosa+ - +5.7+,+3.8+,+1.7+,+0.3+,+setosa+ - +5.1+,+3.8+,+1.5+,+0.3+,+setosa+ - +5.4+,+3.4+,+1.7+,+0.2+,+setosa+ - +5.1+,+3.7+,+1.5+,+0.4+,+setosa+ - +4.6+,+3.6+,+1.0+,+0.2+,+setosa+ - +5.1+,+3.3+,+1.7+,+0.5+,+setosa+ - +4.8+,+3.4+,+1.9+,+0.2+,+setosa+ - +5.0+,+3.0+,+1.6+,+0.2+,+setosa+ - +5.0+,+3.4+,+1.6+,+0.4+,+setosa+ - +5.2+,+3.5+,+1.5+,+0.2+,+setosa+ - +5.2+,+3.4+,+1.4+,+0.2+,+setosa+ - +4.7+,+3.2+,+1.6+,+0.2+,+setosa+ - +4.8+,+3.1+,+1.6+,+0.2+,+setosa+ - +5.4+,+3.4+,+1.5+,+0.4+,+setosa+ - +5.2+,+4.1+,+1.5+,+0.1+,+setosa+ - +5.5+,+4.2+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.1+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.2+,+1.2+,+0.2+,+setosa+ - +5.5+,+3.5+,+1.3+,+0.2+,+setosa+ - +4.9+,+3.6+,+1.4+,+0.1+,+setosa+ - +4.4+,+3.0+,+1.3+,+0.2+,+setosa+ - +5.1+,+3.4+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.5+,+1.3+,+0.3+,+setosa+ - +4.5+,+2.3+,+1.3+,+0.3+,+setosa+ - +4.4+,+3.2+,+1.3+,+0.2+,+setosa+ - +5.0+,+3.5+,+1.6+,+0.6+,+setosa+ - +5.1+,+3.8+,+1.9+,+0.4+,+setosa+ - +4.8+,+3.0+,+1.4+,+0.3+,+setosa+ - +5.1+,+3.8+,+1.6+,+0.2+,+setosa+ - +4.6+,+3.2+,+1.4+,+0.2+,+setosa+ - +5.3+,+3.7+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.3+,+1.4+,+0.2+,+setosa+ - +7.0+,+3.2+,+4.7+,+1.4+,+versicolor+ - +6.4+,+3.2+,+4.5+,+1.5+,+versicolor+ - +6.9+,+3.1+,+4.9+,+1.5+,+versicolor+ - +5.5+,+2.3+,+4.0+,+1.3+,+versicolor+ - +6.5+,+2.8+,+4.6+,+1.5+,+versicolor+ - +5.7+,+2.8+,+4.5+,+1.3+,+versicolor+ - +6.3+,+3.3+,+4.7+,+1.6+,+versicolor+ - +4.9+,+2.4+,+3.3+,+1.0+,+versicolor+ - +6.6+,+2.9+,+4.6+,+1.3+,+versicolor+ - +5.2+,+2.7+,+3.9+,+1.4+,+versicolor+ - +5.0+,+2.0+,+3.5+,+1.0+,+versicolor+ - +5.9+,+3.0+,+4.2+,+1.5+,+versicolor+ - +6.0+,+2.2+,+4.0+,+1.0+,+versicolor+ - +6.1+,+2.9+,+4.7+,+1.4+,+versicolor+ - +5.6+,+2.9+,+3.6+,+1.3+,+versicolor+ - +6.7+,+3.1+,+4.4+,+1.4+,+versicolor+ - +5.6+,+3.0+,+4.5+,+1.5+,+versicolor+ - +5.8+,+2.7+,+4.1+,+1.0+,+versicolor+ - +6.2+,+2.2+,+4.5+,+1.5+,+versicolor+ - +5.6+,+2.5+,+3.9+,+1.1+,+versicolor+ - +5.9+,+3.2+,+4.8+,+1.8+,+versicolor+ - +6.1+,+2.8+,+4.0+,+1.3+,+versicolor+ - +6.3+,+2.5+,+4.9+,+1.5+,+versicolor+ - +6.1+,+2.8+,+4.7+,+1.2+,+versicolor+ - +6.4+,+2.9+,+4.3+,+1.3+,+versicolor+ - +6.6+,+3.0+,+4.4+,+1.4+,+versicolor+ - +6.8+,+2.8+,+4.8+,+1.4+,+versicolor+ - +6.7+,+3.0+,+5.0+,+1.7+,+versicolor+ - +6.0+,+2.9+,+4.5+,+1.5+,+versicolor+ - +5.7+,+2.6+,+3.5+,+1.0+,+versicolor+ - +5.5+,+2.4+,+3.8+,+1.1+,+versicolor+ - +5.5+,+2.4+,+3.7+,+1.0+,+versicolor+ - +5.8+,+2.7+,+3.9+,+1.2+,+versicolor+ - +6.0+,+2.7+,+5.1+,+1.6+,+versicolor+ - +5.4+,+3.0+,+4.5+,+1.5+,+versicolor+ - +6.0+,+3.4+,+4.5+,+1.6+,+versicolor+ - +6.7+,+3.1+,+4.7+,+1.5+,+versicolor+ - +6.3+,+2.3+,+4.4+,+1.3+,+versicolor+ - +5.6+,+3.0+,+4.1+,+1.3+,+versicolor+ - +5.5+,+2.5+,+4.0+,+1.3+,+versicolor+ - +5.5+,+2.6+,+4.4+,+1.2+,+versicolor+ - +6.1+,+3.0+,+4.6+,+1.4+,+versicolor+ - +5.8+,+2.6+,+4.0+,+1.2+,+versicolor+ - +5.0+,+2.3+,+3.3+,+1.0+,+versicolor+ - +5.6+,+2.7+,+4.2+,+1.3+,+versicolor+ - +5.7+,+3.0+,+4.2+,+1.2+,+versicolor+ - +5.7+,+2.9+,+4.2+,+1.3+,+versicolor+ - +6.2+,+2.9+,+4.3+,+1.3+,+versicolor+ - +5.1+,+2.5+,+3.0+,+1.1+,+versicolor+ - +5.7+,+2.8+,+4.1+,+1.3+,+versicolor+ - +6.3+,+3.3+,+6.0+,+2.5+,+virginica+ - +5.8+,+2.7+,+5.1+,+1.9+,+virginica+ - +7.1+,+3.0+,+5.9+,+2.1+,+virginica+ - +6.3+,+2.9+,+5.6+,+1.8+,+virginica+ - +6.5+,+3.0+,+5.8+,+2.2+,+virginica+ - +7.6+,+3.0+,+6.6+,+2.1+,+virginica+ - +4.9+,+2.5+,+4.5+,+1.7+,+virginica+ - +7.3+,+2.9+,+6.3+,+1.8+,+virginica+ - +6.7+,+2.5+,+5.8+,+1.8+,+virginica+ - +7.2+,+3.6+,+6.1+,+2.5+,+virginica+ - +6.5+,+3.2+,+5.1+,+2.0+,+virginica+ - +6.4+,+2.7+,+5.3+,+1.9+,+virginica+ - +6.8+,+3.0+,+5.5+,+2.1+,+virginica+ - +5.7+,+2.5+,+5.0+,+2.0+,+virginica+ - +5.8+,+2.8+,+5.1+,+2.4+,+virginica+ - +6.4+,+3.2+,+5.3+,+2.3+,+virginica+ - +6.5+,+3.0+,+5.5+,+1.8+,+virginica+ - +7.7+,+3.8+,+6.7+,+2.2+,+virginica+ - +7.7+,+2.6+,+6.9+,+2.3+,+virginica+ - +6.0+,+2.2+,+5.0+,+1.5+,+virginica+ - +6.9+,+3.2+,+5.7+,+2.3+,+virginica+ - +5.6+,+2.8+,+4.9+,+2.0+,+virginica+ - +7.7+,+2.8+,+6.7+,+2.0+,+virginica+ - +6.3+,+2.7+,+4.9+,+1.8+,+virginica+ - +6.7+,+3.3+,+5.7+,+2.1+,+virginica+ - +7.2+,+3.2+,+6.0+,+1.8+,+virginica+ - +6.2+,+2.8+,+4.8+,+1.8+,+virginica+ - +6.1+,+3.0+,+4.9+,+1.8+,+virginica+ - +6.4+,+2.8+,+5.6+,+2.1+,+virginica+ - +7.2+,+3.0+,+5.8+,+1.6+,+virginica+ - +7.4+,+2.8+,+6.1+,+1.9+,+virginica+ - +7.9+,+3.8+,+6.4+,+2.0+,+virginica+ - +6.4+,+2.8+,+5.6+,+2.2+,+virginica+ - +6.3+,+2.8+,+5.1+,+1.5+,+virginica+ - +6.1+,+2.6+,+5.6+,+1.4+,+virginica+ - +7.7+,+3.0+,+6.1+,+2.3+,+virginica+ - +6.3+,+3.4+,+5.6+,+2.4+,+virginica+ - +6.4+,+3.1+,+5.5+,+1.8+,+virginica+ - +6.0+,+3.0+,+4.8+,+1.8+,+virginica+ - +6.9+,+3.1+,+5.4+,+2.1+,+virginica+ - +6.7+,+3.1+,+5.6+,+2.4+,+virginica+ - +6.9+,+3.1+,+5.1+,+2.3+,+virginica+ - +5.8+,+2.7+,+5.1+,+1.9+,+virginica+ - +6.8+,+3.2+,+5.9+,+2.3+,+virginica+ - +6.7+,+3.3+,+5.7+,+2.5+,+virginica+ - +6.7+,+3.0+,+5.2+,+2.3+,+virginica+ - +6.3+,+2.5+,+5.0+,+1.9+,+virginica+ - +6.5+,+3.0+,+5.2+,+2.0+,+virginica+ - +6.2+,+3.4+,+5.4+,+2.3+,+virginica+ - +5.9+,+3.0+,+5.1+,+1.8+,+virginica+ --- @@ -211,150 +67,19 @@ 4.6,3.1,1.5,0.2,+setosa+ 5.0,3.6,1.4,0.2,+setosa+ 5.4,3.9,1.7,0.4,+setosa+ - 4.6,3.4,1.4,0.3,+setosa+ - 5.0,3.4,1.5,0.2,+setosa+ - 4.4,2.9,1.4,0.2,+setosa+ - 4.9,3.1,1.5,0.1,+setosa+ - 5.4,3.7,1.5,0.2,+setosa+ - 4.8,3.4,1.6,0.2,+setosa+ - 4.8,3.0,1.4,0.1,+setosa+ - 4.3,3.0,1.1,0.1,+setosa+ - 5.8,4.0,1.2,0.2,+setosa+ - 5.7,4.4,1.5,0.4,+setosa+ - 5.4,3.9,1.3,0.4,+setosa+ - 5.1,3.5,1.4,0.3,+setosa+ - 5.7,3.8,1.7,0.3,+setosa+ - 5.1,3.8,1.5,0.3,+setosa+ - 5.4,3.4,1.7,0.2,+setosa+ - 5.1,3.7,1.5,0.4,+setosa+ - 4.6,3.6,1.0,0.2,+setosa+ - 5.1,3.3,1.7,0.5,+setosa+ - 4.8,3.4,1.9,0.2,+setosa+ - 5.0,3.0,1.6,0.2,+setosa+ - 5.0,3.4,1.6,0.4,+setosa+ - 5.2,3.5,1.5,0.2,+setosa+ - 5.2,3.4,1.4,0.2,+setosa+ - 4.7,3.2,1.6,0.2,+setosa+ - 4.8,3.1,1.6,0.2,+setosa+ - 5.4,3.4,1.5,0.4,+setosa+ - 5.2,4.1,1.5,0.1,+setosa+ - 5.5,4.2,1.4,0.2,+setosa+ - 4.9,3.1,1.5,0.2,+setosa+ - 5.0,3.2,1.2,0.2,+setosa+ - 5.5,3.5,1.3,0.2,+setosa+ - 4.9,3.6,1.4,0.1,+setosa+ - 4.4,3.0,1.3,0.2,+setosa+ - 5.1,3.4,1.5,0.2,+setosa+ - 5.0,3.5,1.3,0.3,+setosa+ - 4.5,2.3,1.3,0.3,+setosa+ - 4.4,3.2,1.3,0.2,+setosa+ - 5.0,3.5,1.6,0.6,+setosa+ - 5.1,3.8,1.9,0.4,+setosa+ - 4.8,3.0,1.4,0.3,+setosa+ - 5.1,3.8,1.6,0.2,+setosa+ - 4.6,3.2,1.4,0.2,+setosa+ - 5.3,3.7,1.5,0.2,+setosa+ - 5.0,3.3,1.4,0.2,+setosa+ - 7.0,3.2,4.7,1.4,+versicolor+ - 6.4,3.2,4.5,1.5,+versicolor+ - 6.9,3.1,4.9,1.5,+versicolor+ - 5.5,2.3,4.0,1.3,+versicolor+ - 6.5,2.8,4.6,1.5,+versicolor+ - 5.7,2.8,4.5,1.3,+versicolor+ - 6.3,3.3,4.7,1.6,+versicolor+ - 4.9,2.4,3.3,1.0,+versicolor+ - 6.6,2.9,4.6,1.3,+versicolor+ - 5.2,2.7,3.9,1.4,+versicolor+ - 5.0,2.0,3.5,1.0,+versicolor+ - 5.9,3.0,4.2,1.5,+versicolor+ - 6.0,2.2,4.0,1.0,+versicolor+ - 6.1,2.9,4.7,1.4,+versicolor+ - 5.6,2.9,3.6,1.3,+versicolor+ - 6.7,3.1,4.4,1.4,+versicolor+ - 5.6,3.0,4.5,1.5,+versicolor+ - 5.8,2.7,4.1,1.0,+versicolor+ - 6.2,2.2,4.5,1.5,+versicolor+ - 5.6,2.5,3.9,1.1,+versicolor+ - 5.9,3.2,4.8,1.8,+versicolor+ - 6.1,2.8,4.0,1.3,+versicolor+ - 6.3,2.5,4.9,1.5,+versicolor+ - 6.1,2.8,4.7,1.2,+versicolor+ - 6.4,2.9,4.3,1.3,+versicolor+ - 6.6,3.0,4.4,1.4,+versicolor+ - 6.8,2.8,4.8,1.4,+versicolor+ - 6.7,3.0,5.0,1.7,+versicolor+ - 6.0,2.9,4.5,1.5,+versicolor+ - 5.7,2.6,3.5,1.0,+versicolor+ - 5.5,2.4,3.8,1.1,+versicolor+ - 5.5,2.4,3.7,1.0,+versicolor+ - 5.8,2.7,3.9,1.2,+versicolor+ - 6.0,2.7,5.1,1.6,+versicolor+ - 5.4,3.0,4.5,1.5,+versicolor+ - 6.0,3.4,4.5,1.6,+versicolor+ - 6.7,3.1,4.7,1.5,+versicolor+ - 6.3,2.3,4.4,1.3,+versicolor+ - 5.6,3.0,4.1,1.3,+versicolor+ - 5.5,2.5,4.0,1.3,+versicolor+ - 5.5,2.6,4.4,1.2,+versicolor+ - 6.1,3.0,4.6,1.4,+versicolor+ - 5.8,2.6,4.0,1.2,+versicolor+ - 5.0,2.3,3.3,1.0,+versicolor+ - 5.6,2.7,4.2,1.3,+versicolor+ - 5.7,3.0,4.2,1.2,+versicolor+ - 5.7,2.9,4.2,1.3,+versicolor+ - 6.2,2.9,4.3,1.3,+versicolor+ - 5.1,2.5,3.0,1.1,+versicolor+ - 5.7,2.8,4.1,1.3,+versicolor+ - 6.3,3.3,6.0,2.5,+virginica+ - 5.8,2.7,5.1,1.9,+virginica+ - 7.1,3.0,5.9,2.1,+virginica+ - 6.3,2.9,5.6,1.8,+virginica+ - 6.5,3.0,5.8,2.2,+virginica+ - 7.6,3.0,6.6,2.1,+virginica+ - 4.9,2.5,4.5,1.7,+virginica+ - 7.3,2.9,6.3,1.8,+virginica+ - 6.7,2.5,5.8,1.8,+virginica+ - 7.2,3.6,6.1,2.5,+virginica+ - 6.5,3.2,5.1,2.0,+virginica+ - 6.4,2.7,5.3,1.9,+virginica+ - 6.8,3.0,5.5,2.1,+virginica+ - 5.7,2.5,5.0,2.0,+virginica+ - 5.8,2.8,5.1,2.4,+virginica+ - 6.4,3.2,5.3,2.3,+virginica+ - 6.5,3.0,5.5,1.8,+virginica+ - 7.7,3.8,6.7,2.2,+virginica+ - 7.7,2.6,6.9,2.3,+virginica+ - 6.0,2.2,5.0,1.5,+virginica+ - 6.9,3.2,5.7,2.3,+virginica+ - 5.6,2.8,4.9,2.0,+virginica+ - 7.7,2.8,6.7,2.0,+virginica+ - 6.3,2.7,4.9,1.8,+virginica+ - 6.7,3.3,5.7,2.1,+virginica+ - 7.2,3.2,6.0,1.8,+virginica+ - 6.2,2.8,4.8,1.8,+virginica+ - 6.1,3.0,4.9,1.8,+virginica+ - 6.4,2.8,5.6,2.1,+virginica+ - 7.2,3.0,5.8,1.6,+virginica+ - 7.4,2.8,6.1,1.9,+virginica+ - 7.9,3.8,6.4,2.0,+virginica+ - 6.4,2.8,5.6,2.2,+virginica+ - 6.3,2.8,5.1,1.5,+virginica+ - 6.1,2.6,5.6,1.4,+virginica+ - 7.7,3.0,6.1,2.3,+virginica+ - 6.3,3.4,5.6,2.4,+virginica+ - 6.4,3.1,5.5,1.8,+virginica+ - 6.0,3.0,4.8,1.8,+virginica+ - 6.9,3.1,5.4,2.1,+virginica+ - 6.7,3.1,5.6,2.4,+virginica+ - 6.9,3.1,5.1,2.3,+virginica+ - 5.8,2.7,5.1,1.9,+virginica+ - 6.8,3.2,5.9,2.3,+virginica+ - 6.7,3.3,5.7,2.5,+virginica+ - 6.7,3.0,5.2,2.3,+virginica+ - 6.3,2.5,5.0,1.9,+virginica+ - 6.5,3.0,5.2,2.0,+virginica+ - 6.2,3.4,5.4,2.3,+virginica+ - 5.9,3.0,5.1,1.8,+virginica+ + +--- + + Code + cat(readLines(path), sep = "\n") + Output + Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species + 5.1,3.5,1.4,0.2,setosa + 4.9,3.0,1.4,0.2,setosa + 4.7,3.2,1.3,0.2,setosa + 4.6,3.1,1.5,0.2,setosa + 5.0,3.6,1.4,0.2,setosa + 5.4,3.9,1.7,0.4,setosa # write_csv: quote_style quote_style=necessary diff --git a/tests/testthat/_snaps/sink_stream.md b/tests/testthat/_snaps/sink_stream.md index 1774bff25..95d61492b 100644 --- a/tests/testthat/_snaps/sink_stream.md +++ b/tests/testthat/_snaps/sink_stream.md @@ -54,150 +54,6 @@ +4.6+,+3.1+,+1.5+,+0.2+,+setosa+ +5.0+,+3.6+,+1.4+,+0.2+,+setosa+ +5.4+,+3.9+,+1.7+,+0.4+,+setosa+ - +4.6+,+3.4+,+1.4+,+0.3+,+setosa+ - +5.0+,+3.4+,+1.5+,+0.2+,+setosa+ - +4.4+,+2.9+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.1+,+1.5+,+0.1+,+setosa+ - +5.4+,+3.7+,+1.5+,+0.2+,+setosa+ - +4.8+,+3.4+,+1.6+,+0.2+,+setosa+ - +4.8+,+3.0+,+1.4+,+0.1+,+setosa+ - +4.3+,+3.0+,+1.1+,+0.1+,+setosa+ - +5.8+,+4.0+,+1.2+,+0.2+,+setosa+ - +5.7+,+4.4+,+1.5+,+0.4+,+setosa+ - +5.4+,+3.9+,+1.3+,+0.4+,+setosa+ - +5.1+,+3.5+,+1.4+,+0.3+,+setosa+ - +5.7+,+3.8+,+1.7+,+0.3+,+setosa+ - +5.1+,+3.8+,+1.5+,+0.3+,+setosa+ - +5.4+,+3.4+,+1.7+,+0.2+,+setosa+ - +5.1+,+3.7+,+1.5+,+0.4+,+setosa+ - +4.6+,+3.6+,+1.0+,+0.2+,+setosa+ - +5.1+,+3.3+,+1.7+,+0.5+,+setosa+ - +4.8+,+3.4+,+1.9+,+0.2+,+setosa+ - +5.0+,+3.0+,+1.6+,+0.2+,+setosa+ - +5.0+,+3.4+,+1.6+,+0.4+,+setosa+ - +5.2+,+3.5+,+1.5+,+0.2+,+setosa+ - +5.2+,+3.4+,+1.4+,+0.2+,+setosa+ - +4.7+,+3.2+,+1.6+,+0.2+,+setosa+ - +4.8+,+3.1+,+1.6+,+0.2+,+setosa+ - +5.4+,+3.4+,+1.5+,+0.4+,+setosa+ - +5.2+,+4.1+,+1.5+,+0.1+,+setosa+ - +5.5+,+4.2+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.1+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.2+,+1.2+,+0.2+,+setosa+ - +5.5+,+3.5+,+1.3+,+0.2+,+setosa+ - +4.9+,+3.6+,+1.4+,+0.1+,+setosa+ - +4.4+,+3.0+,+1.3+,+0.2+,+setosa+ - +5.1+,+3.4+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.5+,+1.3+,+0.3+,+setosa+ - +4.5+,+2.3+,+1.3+,+0.3+,+setosa+ - +4.4+,+3.2+,+1.3+,+0.2+,+setosa+ - +5.0+,+3.5+,+1.6+,+0.6+,+setosa+ - +5.1+,+3.8+,+1.9+,+0.4+,+setosa+ - +4.8+,+3.0+,+1.4+,+0.3+,+setosa+ - +5.1+,+3.8+,+1.6+,+0.2+,+setosa+ - +4.6+,+3.2+,+1.4+,+0.2+,+setosa+ - +5.3+,+3.7+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.3+,+1.4+,+0.2+,+setosa+ - +7.0+,+3.2+,+4.7+,+1.4+,+versicolor+ - +6.4+,+3.2+,+4.5+,+1.5+,+versicolor+ - +6.9+,+3.1+,+4.9+,+1.5+,+versicolor+ - +5.5+,+2.3+,+4.0+,+1.3+,+versicolor+ - +6.5+,+2.8+,+4.6+,+1.5+,+versicolor+ - +5.7+,+2.8+,+4.5+,+1.3+,+versicolor+ - +6.3+,+3.3+,+4.7+,+1.6+,+versicolor+ - +4.9+,+2.4+,+3.3+,+1.0+,+versicolor+ - +6.6+,+2.9+,+4.6+,+1.3+,+versicolor+ - +5.2+,+2.7+,+3.9+,+1.4+,+versicolor+ - +5.0+,+2.0+,+3.5+,+1.0+,+versicolor+ - +5.9+,+3.0+,+4.2+,+1.5+,+versicolor+ - +6.0+,+2.2+,+4.0+,+1.0+,+versicolor+ - +6.1+,+2.9+,+4.7+,+1.4+,+versicolor+ - +5.6+,+2.9+,+3.6+,+1.3+,+versicolor+ - +6.7+,+3.1+,+4.4+,+1.4+,+versicolor+ - +5.6+,+3.0+,+4.5+,+1.5+,+versicolor+ - +5.8+,+2.7+,+4.1+,+1.0+,+versicolor+ - +6.2+,+2.2+,+4.5+,+1.5+,+versicolor+ - +5.6+,+2.5+,+3.9+,+1.1+,+versicolor+ - +5.9+,+3.2+,+4.8+,+1.8+,+versicolor+ - +6.1+,+2.8+,+4.0+,+1.3+,+versicolor+ - +6.3+,+2.5+,+4.9+,+1.5+,+versicolor+ - +6.1+,+2.8+,+4.7+,+1.2+,+versicolor+ - +6.4+,+2.9+,+4.3+,+1.3+,+versicolor+ - +6.6+,+3.0+,+4.4+,+1.4+,+versicolor+ - +6.8+,+2.8+,+4.8+,+1.4+,+versicolor+ - +6.7+,+3.0+,+5.0+,+1.7+,+versicolor+ - +6.0+,+2.9+,+4.5+,+1.5+,+versicolor+ - +5.7+,+2.6+,+3.5+,+1.0+,+versicolor+ - +5.5+,+2.4+,+3.8+,+1.1+,+versicolor+ - +5.5+,+2.4+,+3.7+,+1.0+,+versicolor+ - +5.8+,+2.7+,+3.9+,+1.2+,+versicolor+ - +6.0+,+2.7+,+5.1+,+1.6+,+versicolor+ - +5.4+,+3.0+,+4.5+,+1.5+,+versicolor+ - +6.0+,+3.4+,+4.5+,+1.6+,+versicolor+ - +6.7+,+3.1+,+4.7+,+1.5+,+versicolor+ - +6.3+,+2.3+,+4.4+,+1.3+,+versicolor+ - +5.6+,+3.0+,+4.1+,+1.3+,+versicolor+ - +5.5+,+2.5+,+4.0+,+1.3+,+versicolor+ - +5.5+,+2.6+,+4.4+,+1.2+,+versicolor+ - +6.1+,+3.0+,+4.6+,+1.4+,+versicolor+ - +5.8+,+2.6+,+4.0+,+1.2+,+versicolor+ - +5.0+,+2.3+,+3.3+,+1.0+,+versicolor+ - +5.6+,+2.7+,+4.2+,+1.3+,+versicolor+ - +5.7+,+3.0+,+4.2+,+1.2+,+versicolor+ - +5.7+,+2.9+,+4.2+,+1.3+,+versicolor+ - +6.2+,+2.9+,+4.3+,+1.3+,+versicolor+ - +5.1+,+2.5+,+3.0+,+1.1+,+versicolor+ - +5.7+,+2.8+,+4.1+,+1.3+,+versicolor+ - +6.3+,+3.3+,+6.0+,+2.5+,+virginica+ - +5.8+,+2.7+,+5.1+,+1.9+,+virginica+ - +7.1+,+3.0+,+5.9+,+2.1+,+virginica+ - +6.3+,+2.9+,+5.6+,+1.8+,+virginica+ - +6.5+,+3.0+,+5.8+,+2.2+,+virginica+ - +7.6+,+3.0+,+6.6+,+2.1+,+virginica+ - +4.9+,+2.5+,+4.5+,+1.7+,+virginica+ - +7.3+,+2.9+,+6.3+,+1.8+,+virginica+ - +6.7+,+2.5+,+5.8+,+1.8+,+virginica+ - +7.2+,+3.6+,+6.1+,+2.5+,+virginica+ - +6.5+,+3.2+,+5.1+,+2.0+,+virginica+ - +6.4+,+2.7+,+5.3+,+1.9+,+virginica+ - +6.8+,+3.0+,+5.5+,+2.1+,+virginica+ - +5.7+,+2.5+,+5.0+,+2.0+,+virginica+ - +5.8+,+2.8+,+5.1+,+2.4+,+virginica+ - +6.4+,+3.2+,+5.3+,+2.3+,+virginica+ - +6.5+,+3.0+,+5.5+,+1.8+,+virginica+ - +7.7+,+3.8+,+6.7+,+2.2+,+virginica+ - +7.7+,+2.6+,+6.9+,+2.3+,+virginica+ - +6.0+,+2.2+,+5.0+,+1.5+,+virginica+ - +6.9+,+3.2+,+5.7+,+2.3+,+virginica+ - +5.6+,+2.8+,+4.9+,+2.0+,+virginica+ - +7.7+,+2.8+,+6.7+,+2.0+,+virginica+ - +6.3+,+2.7+,+4.9+,+1.8+,+virginica+ - +6.7+,+3.3+,+5.7+,+2.1+,+virginica+ - +7.2+,+3.2+,+6.0+,+1.8+,+virginica+ - +6.2+,+2.8+,+4.8+,+1.8+,+virginica+ - +6.1+,+3.0+,+4.9+,+1.8+,+virginica+ - +6.4+,+2.8+,+5.6+,+2.1+,+virginica+ - +7.2+,+3.0+,+5.8+,+1.6+,+virginica+ - +7.4+,+2.8+,+6.1+,+1.9+,+virginica+ - +7.9+,+3.8+,+6.4+,+2.0+,+virginica+ - +6.4+,+2.8+,+5.6+,+2.2+,+virginica+ - +6.3+,+2.8+,+5.1+,+1.5+,+virginica+ - +6.1+,+2.6+,+5.6+,+1.4+,+virginica+ - +7.7+,+3.0+,+6.1+,+2.3+,+virginica+ - +6.3+,+3.4+,+5.6+,+2.4+,+virginica+ - +6.4+,+3.1+,+5.5+,+1.8+,+virginica+ - +6.0+,+3.0+,+4.8+,+1.8+,+virginica+ - +6.9+,+3.1+,+5.4+,+2.1+,+virginica+ - +6.7+,+3.1+,+5.6+,+2.4+,+virginica+ - +6.9+,+3.1+,+5.1+,+2.3+,+virginica+ - +5.8+,+2.7+,+5.1+,+1.9+,+virginica+ - +6.8+,+3.2+,+5.9+,+2.3+,+virginica+ - +6.7+,+3.3+,+5.7+,+2.5+,+virginica+ - +6.7+,+3.0+,+5.2+,+2.3+,+virginica+ - +6.3+,+2.5+,+5.0+,+1.9+,+virginica+ - +6.5+,+3.0+,+5.2+,+2.0+,+virginica+ - +6.2+,+3.4+,+5.4+,+2.3+,+virginica+ - +5.9+,+3.0+,+5.1+,+1.8+,+virginica+ --- @@ -211,150 +67,19 @@ 4.6,3.1,1.5,0.2,+setosa+ 5.0,3.6,1.4,0.2,+setosa+ 5.4,3.9,1.7,0.4,+setosa+ - 4.6,3.4,1.4,0.3,+setosa+ - 5.0,3.4,1.5,0.2,+setosa+ - 4.4,2.9,1.4,0.2,+setosa+ - 4.9,3.1,1.5,0.1,+setosa+ - 5.4,3.7,1.5,0.2,+setosa+ - 4.8,3.4,1.6,0.2,+setosa+ - 4.8,3.0,1.4,0.1,+setosa+ - 4.3,3.0,1.1,0.1,+setosa+ - 5.8,4.0,1.2,0.2,+setosa+ - 5.7,4.4,1.5,0.4,+setosa+ - 5.4,3.9,1.3,0.4,+setosa+ - 5.1,3.5,1.4,0.3,+setosa+ - 5.7,3.8,1.7,0.3,+setosa+ - 5.1,3.8,1.5,0.3,+setosa+ - 5.4,3.4,1.7,0.2,+setosa+ - 5.1,3.7,1.5,0.4,+setosa+ - 4.6,3.6,1.0,0.2,+setosa+ - 5.1,3.3,1.7,0.5,+setosa+ - 4.8,3.4,1.9,0.2,+setosa+ - 5.0,3.0,1.6,0.2,+setosa+ - 5.0,3.4,1.6,0.4,+setosa+ - 5.2,3.5,1.5,0.2,+setosa+ - 5.2,3.4,1.4,0.2,+setosa+ - 4.7,3.2,1.6,0.2,+setosa+ - 4.8,3.1,1.6,0.2,+setosa+ - 5.4,3.4,1.5,0.4,+setosa+ - 5.2,4.1,1.5,0.1,+setosa+ - 5.5,4.2,1.4,0.2,+setosa+ - 4.9,3.1,1.5,0.2,+setosa+ - 5.0,3.2,1.2,0.2,+setosa+ - 5.5,3.5,1.3,0.2,+setosa+ - 4.9,3.6,1.4,0.1,+setosa+ - 4.4,3.0,1.3,0.2,+setosa+ - 5.1,3.4,1.5,0.2,+setosa+ - 5.0,3.5,1.3,0.3,+setosa+ - 4.5,2.3,1.3,0.3,+setosa+ - 4.4,3.2,1.3,0.2,+setosa+ - 5.0,3.5,1.6,0.6,+setosa+ - 5.1,3.8,1.9,0.4,+setosa+ - 4.8,3.0,1.4,0.3,+setosa+ - 5.1,3.8,1.6,0.2,+setosa+ - 4.6,3.2,1.4,0.2,+setosa+ - 5.3,3.7,1.5,0.2,+setosa+ - 5.0,3.3,1.4,0.2,+setosa+ - 7.0,3.2,4.7,1.4,+versicolor+ - 6.4,3.2,4.5,1.5,+versicolor+ - 6.9,3.1,4.9,1.5,+versicolor+ - 5.5,2.3,4.0,1.3,+versicolor+ - 6.5,2.8,4.6,1.5,+versicolor+ - 5.7,2.8,4.5,1.3,+versicolor+ - 6.3,3.3,4.7,1.6,+versicolor+ - 4.9,2.4,3.3,1.0,+versicolor+ - 6.6,2.9,4.6,1.3,+versicolor+ - 5.2,2.7,3.9,1.4,+versicolor+ - 5.0,2.0,3.5,1.0,+versicolor+ - 5.9,3.0,4.2,1.5,+versicolor+ - 6.0,2.2,4.0,1.0,+versicolor+ - 6.1,2.9,4.7,1.4,+versicolor+ - 5.6,2.9,3.6,1.3,+versicolor+ - 6.7,3.1,4.4,1.4,+versicolor+ - 5.6,3.0,4.5,1.5,+versicolor+ - 5.8,2.7,4.1,1.0,+versicolor+ - 6.2,2.2,4.5,1.5,+versicolor+ - 5.6,2.5,3.9,1.1,+versicolor+ - 5.9,3.2,4.8,1.8,+versicolor+ - 6.1,2.8,4.0,1.3,+versicolor+ - 6.3,2.5,4.9,1.5,+versicolor+ - 6.1,2.8,4.7,1.2,+versicolor+ - 6.4,2.9,4.3,1.3,+versicolor+ - 6.6,3.0,4.4,1.4,+versicolor+ - 6.8,2.8,4.8,1.4,+versicolor+ - 6.7,3.0,5.0,1.7,+versicolor+ - 6.0,2.9,4.5,1.5,+versicolor+ - 5.7,2.6,3.5,1.0,+versicolor+ - 5.5,2.4,3.8,1.1,+versicolor+ - 5.5,2.4,3.7,1.0,+versicolor+ - 5.8,2.7,3.9,1.2,+versicolor+ - 6.0,2.7,5.1,1.6,+versicolor+ - 5.4,3.0,4.5,1.5,+versicolor+ - 6.0,3.4,4.5,1.6,+versicolor+ - 6.7,3.1,4.7,1.5,+versicolor+ - 6.3,2.3,4.4,1.3,+versicolor+ - 5.6,3.0,4.1,1.3,+versicolor+ - 5.5,2.5,4.0,1.3,+versicolor+ - 5.5,2.6,4.4,1.2,+versicolor+ - 6.1,3.0,4.6,1.4,+versicolor+ - 5.8,2.6,4.0,1.2,+versicolor+ - 5.0,2.3,3.3,1.0,+versicolor+ - 5.6,2.7,4.2,1.3,+versicolor+ - 5.7,3.0,4.2,1.2,+versicolor+ - 5.7,2.9,4.2,1.3,+versicolor+ - 6.2,2.9,4.3,1.3,+versicolor+ - 5.1,2.5,3.0,1.1,+versicolor+ - 5.7,2.8,4.1,1.3,+versicolor+ - 6.3,3.3,6.0,2.5,+virginica+ - 5.8,2.7,5.1,1.9,+virginica+ - 7.1,3.0,5.9,2.1,+virginica+ - 6.3,2.9,5.6,1.8,+virginica+ - 6.5,3.0,5.8,2.2,+virginica+ - 7.6,3.0,6.6,2.1,+virginica+ - 4.9,2.5,4.5,1.7,+virginica+ - 7.3,2.9,6.3,1.8,+virginica+ - 6.7,2.5,5.8,1.8,+virginica+ - 7.2,3.6,6.1,2.5,+virginica+ - 6.5,3.2,5.1,2.0,+virginica+ - 6.4,2.7,5.3,1.9,+virginica+ - 6.8,3.0,5.5,2.1,+virginica+ - 5.7,2.5,5.0,2.0,+virginica+ - 5.8,2.8,5.1,2.4,+virginica+ - 6.4,3.2,5.3,2.3,+virginica+ - 6.5,3.0,5.5,1.8,+virginica+ - 7.7,3.8,6.7,2.2,+virginica+ - 7.7,2.6,6.9,2.3,+virginica+ - 6.0,2.2,5.0,1.5,+virginica+ - 6.9,3.2,5.7,2.3,+virginica+ - 5.6,2.8,4.9,2.0,+virginica+ - 7.7,2.8,6.7,2.0,+virginica+ - 6.3,2.7,4.9,1.8,+virginica+ - 6.7,3.3,5.7,2.1,+virginica+ - 7.2,3.2,6.0,1.8,+virginica+ - 6.2,2.8,4.8,1.8,+virginica+ - 6.1,3.0,4.9,1.8,+virginica+ - 6.4,2.8,5.6,2.1,+virginica+ - 7.2,3.0,5.8,1.6,+virginica+ - 7.4,2.8,6.1,1.9,+virginica+ - 7.9,3.8,6.4,2.0,+virginica+ - 6.4,2.8,5.6,2.2,+virginica+ - 6.3,2.8,5.1,1.5,+virginica+ - 6.1,2.6,5.6,1.4,+virginica+ - 7.7,3.0,6.1,2.3,+virginica+ - 6.3,3.4,5.6,2.4,+virginica+ - 6.4,3.1,5.5,1.8,+virginica+ - 6.0,3.0,4.8,1.8,+virginica+ - 6.9,3.1,5.4,2.1,+virginica+ - 6.7,3.1,5.6,2.4,+virginica+ - 6.9,3.1,5.1,2.3,+virginica+ - 5.8,2.7,5.1,1.9,+virginica+ - 6.8,3.2,5.9,2.3,+virginica+ - 6.7,3.3,5.7,2.5,+virginica+ - 6.7,3.0,5.2,2.3,+virginica+ - 6.3,2.5,5.0,1.9,+virginica+ - 6.5,3.0,5.2,2.0,+virginica+ - 6.2,3.4,5.4,2.3,+virginica+ - 5.9,3.0,5.1,1.8,+virginica+ + +--- + + Code + cat(readLines(path), sep = "\n") + Output + Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species + 5.1,3.5,1.4,0.2,setosa + 4.9,3.0,1.4,0.2,setosa + 4.7,3.2,1.3,0.2,setosa + 4.6,3.1,1.5,0.2,setosa + 5.0,3.6,1.4,0.2,setosa + 5.4,3.9,1.7,0.4,setosa # sink_csv: quote_style quote_style=necessary diff --git a/tests/testthat/test-csv-write.R b/tests/testthat/test-csv-write.R index e634e8820..a550ea632 100644 --- a/tests/testthat/test-csv-write.R +++ b/tests/testthat/test-csv-write.R @@ -28,12 +28,12 @@ test_that("write_csv: separator works", { }) test_that("write_csv: quote_style and quote works", { - dat_pl2 = pl$DataFrame(iris) + dat_pl2 = pl$DataFrame(head(iris)) # wrong quote_style ctx = dat_pl2$write_csv(temp_out, quote_style = "foo") |> get_err_ctx() expect_identical(ctx$BadArgument, "quote_style") - expect_identical(ctx$Plain, "a `quote_style` must be 'always', 'necessary' or 'non_numeric'.") + expect_identical(ctx$Plain, "`quote_style` should be one of 'always', 'necessary', 'non_numeric', or 'never'.") # wrong quote_style type ctx = dat_pl2$write_csv(temp_out, quote_style = 42) |> get_err_ctx() @@ -47,6 +47,10 @@ test_that("write_csv: quote_style and quote works", { ctx = dat_pl2$write_csv(temp_out, quote_style = "non_numeric", quote = "+") expect_snapshot_file(temp_out) + # ok also + ctx = dat_pl2$write_csv(temp_out, quote_style = "never", quote = "+") + expect_snapshot_file(temp_out) + # zero byte quote ctx = dat_pl2$write_csv(temp_out, quote = "") |> get_err_ctx() expect_identical(ctx$Plain, "cannot extract single byte from empty string") diff --git a/tests/testthat/test-sink_stream.R b/tests/testthat/test-sink_stream.R index 485cc281a..57fb9bebf 100644 --- a/tests/testthat/test-sink_stream.R +++ b/tests/testthat/test-sink_stream.R @@ -99,12 +99,12 @@ test_that("sink_csv: separator works", { }) test_that("sink_csv: quote_style and quote works", { - dat_pl2 = pl$LazyFrame(iris) + dat_pl2 = pl$LazyFrame(head(iris)) # wrong quote_style ctx = dat_pl2$sink_csv(temp_out, quote_style = "foo") |> get_err_ctx() expect_identical(ctx$BadArgument, "quote_style") - expect_identical(ctx$Plain, "a `quote_style` must be 'always', 'necessary' or 'non_numeric'.") + expect_identical(ctx$Plain, "`quote_style` should be one of 'always', 'necessary', 'non_numeric', or 'never'.") # wrong quote_style type ctx = dat_pl2$sink_csv(temp_out, quote_style = 42) |> get_err_ctx() @@ -118,6 +118,10 @@ test_that("sink_csv: quote_style and quote works", { ctx = dat_pl2$sink_csv(temp_out, quote_style = "non_numeric", quote = "+") expect_snapshot_file(temp_out) + # ok also + ctx = dat_pl2$sink_csv(temp_out, quote_style = "never", quote = "+") + expect_snapshot_file(temp_out) + # zero byte quote ctx = dat_pl2$sink_csv(temp_out, quote = "") |> get_err_ctx() expect_identical(ctx$Plain, "cannot extract single byte from empty string") From ff2987952f67937df8fed4dcd520d8ad4e8b896e Mon Sep 17 00:00:00 2001 From: Etienne Bacher <52219252+etiennebacher@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:35:08 +0100 Subject: [PATCH 2/4] bump news --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 4ac907af7..3789dc834 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,7 +3,7 @@ ## What's changed - The argument `quote_style` in `$write_csv()` and `$sink_csv()` can now take - the value `"never"`. + the value `"never"` (#483). # polars 0.10.0 From f8a7ebc837e901945b64f687f3d41fddcd98be64 Mon Sep 17 00:00:00 2001 From: Etienne Bacher <52219252+etiennebacher@users.noreply.github.com> Date: Thu, 9 Nov 2023 14:28:56 +0100 Subject: [PATCH 3/4] bump r-polars rust version, use parametric tests --- DESCRIPTION | 2 +- README.md | 9 ------ src/rust/Cargo.lock | 2 +- src/rust/Cargo.toml | 2 +- src/rust/src/utils/mod.rs | 4 ++- tests/testthat/_snaps/csv-write.md | 48 ++++++---------------------- tests/testthat/_snaps/sink_stream.md | 48 ++++++---------------------- tests/testthat/test-csv-write.R | 14 +------- tests/testthat/test-sink_stream.R | 14 +------- tools/lib-sums.tsv | 6 ---- 10 files changed, 26 insertions(+), 123 deletions(-) delete mode 100644 tools/lib-sums.tsv diff --git a/DESCRIPTION b/DESCRIPTION index e7fc60cc6..61575d126 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -112,5 +112,5 @@ Collate: 'zzz.R' Config/rextendr/version: 0.3.1 VignetteBuilder: knitr -Config/polars/LibVersion: 0.34.0 +Config/polars/LibVersion: 0.35.0 Config/polars/RustToolchainVersion: nightly-2023-10-12 diff --git a/README.md b/README.md index 2591455d5..fd45e9f2a 100644 --- a/README.md +++ b/README.md @@ -108,15 +108,6 @@ install.packages( ### Build from source -For source installation, pre-built Rust libraries may be available if -the environment variable `NOT_CRAN` is set to `"true"`. (Or, set -`LIBR_POLARS_BUILD` to `"false"`) - -``` r -Sys.setenv(NOT_CRAN = "true") -install.packages("polars", repos = "https://rpolars.r-universe.dev") -``` - Otherwise, the Rust library will be built from source. the Rust toolchain (Rust 1.73 or later) must be configured. diff --git a/src/rust/Cargo.lock b/src/rust/Cargo.lock index b8172163a..2ff9cd654 100644 --- a/src/rust/Cargo.lock +++ b/src/rust/Cargo.lock @@ -1844,7 +1844,7 @@ dependencies = [ [[package]] name = "r-polars" -version = "0.34.0" +version = "0.35.0" dependencies = [ "either", "extendr-api", diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml index 7f225bb00..bc9c2d94f 100644 --- a/src/rust/Cargo.toml +++ b/src/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "r-polars" -version = "0.34.0" +version = "0.35.0" edition = "2021" rust-version = "1.73" publish = false diff --git a/src/rust/src/utils/mod.rs b/src/rust/src/utils/mod.rs index 669d0e8e4..bdc5e62f3 100644 --- a/src/rust/src/utils/mod.rs +++ b/src/rust/src/utils/mod.rs @@ -590,7 +590,9 @@ pub fn robj_to_quote_style(robj: Robj) -> RResult { "non_numeric" => Ok(pl::QuoteStyle::NonNumeric), "never" => Ok(pl::QuoteStyle::Never), _ => rerr() - .plain("`quote_style` should be one of 'always', 'necessary', 'non_numeric', or 'never'.") + .plain( + "`quote_style` should be one of 'always', 'necessary', 'non_numeric', or 'never'.", + ) .bad_robj(&robj), } } diff --git a/tests/testthat/_snaps/csv-write.md b/tests/testthat/_snaps/csv-write.md index 9eb03d25b..2f953c50c 100644 --- a/tests/testthat/_snaps/csv-write.md +++ b/tests/testthat/_snaps/csv-write.md @@ -42,45 +42,6 @@ 15.2|8.0|275.8|180.0|3.07|3.78|18.0|0.0|0.0|3.0|3.0 10.4|8.0|472.0|205.0|2.93|5.25|17.98|0.0|0.0|3.0|4.0 -# write_csv: quote_style and quote works - - Code - cat(readLines(path), sep = "\n") - Output - +Sepal.Length+,+Sepal.Width+,+Petal.Length+,+Petal.Width+,+Species+ - +5.1+,+3.5+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.0+,+1.4+,+0.2+,+setosa+ - +4.7+,+3.2+,+1.3+,+0.2+,+setosa+ - +4.6+,+3.1+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.6+,+1.4+,+0.2+,+setosa+ - +5.4+,+3.9+,+1.7+,+0.4+,+setosa+ - ---- - - Code - cat(readLines(path), sep = "\n") - Output - +Sepal.Length+,+Sepal.Width+,+Petal.Length+,+Petal.Width+,+Species+ - 5.1,3.5,1.4,0.2,+setosa+ - 4.9,3.0,1.4,0.2,+setosa+ - 4.7,3.2,1.3,0.2,+setosa+ - 4.6,3.1,1.5,0.2,+setosa+ - 5.0,3.6,1.4,0.2,+setosa+ - 5.4,3.9,1.7,0.4,+setosa+ - ---- - - Code - cat(readLines(path), sep = "\n") - Output - Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species - 5.1,3.5,1.4,0.2,setosa - 4.9,3.0,1.4,0.2,setosa - 4.7,3.2,1.3,0.2,setosa - 4.6,3.1,1.5,0.2,setosa - 5.0,3.6,1.4,0.2,setosa - 5.4,3.9,1.7,0.4,setosa - # write_csv: quote_style quote_style=necessary Code @@ -108,6 +69,15 @@ """foo""",1,"a" "bar",2,"b" +# write_csv: quote_style quote_style=never + + Code + cat(readLines(path), sep = "\n") + Output + a,b,c + "foo",1,a + bar,2,b + # write_csv: date_format works Code diff --git a/tests/testthat/_snaps/sink_stream.md b/tests/testthat/_snaps/sink_stream.md index 95d61492b..29ac04e76 100644 --- a/tests/testthat/_snaps/sink_stream.md +++ b/tests/testthat/_snaps/sink_stream.md @@ -42,45 +42,6 @@ 15.2|8.0|275.8|180.0|3.07|3.78|18.0|0.0|0.0|3.0|3.0 10.4|8.0|472.0|205.0|2.93|5.25|17.98|0.0|0.0|3.0|4.0 -# sink_csv: quote_style and quote works - - Code - cat(readLines(path), sep = "\n") - Output - +Sepal.Length+,+Sepal.Width+,+Petal.Length+,+Petal.Width+,+Species+ - +5.1+,+3.5+,+1.4+,+0.2+,+setosa+ - +4.9+,+3.0+,+1.4+,+0.2+,+setosa+ - +4.7+,+3.2+,+1.3+,+0.2+,+setosa+ - +4.6+,+3.1+,+1.5+,+0.2+,+setosa+ - +5.0+,+3.6+,+1.4+,+0.2+,+setosa+ - +5.4+,+3.9+,+1.7+,+0.4+,+setosa+ - ---- - - Code - cat(readLines(path), sep = "\n") - Output - +Sepal.Length+,+Sepal.Width+,+Petal.Length+,+Petal.Width+,+Species+ - 5.1,3.5,1.4,0.2,+setosa+ - 4.9,3.0,1.4,0.2,+setosa+ - 4.7,3.2,1.3,0.2,+setosa+ - 4.6,3.1,1.5,0.2,+setosa+ - 5.0,3.6,1.4,0.2,+setosa+ - 5.4,3.9,1.7,0.4,+setosa+ - ---- - - Code - cat(readLines(path), sep = "\n") - Output - Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species - 5.1,3.5,1.4,0.2,setosa - 4.9,3.0,1.4,0.2,setosa - 4.7,3.2,1.3,0.2,setosa - 4.6,3.1,1.5,0.2,setosa - 5.0,3.6,1.4,0.2,setosa - 5.4,3.9,1.7,0.4,setosa - # sink_csv: quote_style quote_style=necessary Code @@ -108,6 +69,15 @@ """foo""",1,"a" "bar",2,"b" +# sink_csv: quote_style quote_style=never + + Code + cat(readLines(path), sep = "\n") + Output + a,b,c + "foo",1,a + bar,2,b + # sink_csv: date_format works Code diff --git a/tests/testthat/test-csv-write.R b/tests/testthat/test-csv-write.R index a550ea632..7ebfa3919 100644 --- a/tests/testthat/test-csv-write.R +++ b/tests/testthat/test-csv-write.R @@ -39,18 +39,6 @@ test_that("write_csv: quote_style and quote works", { ctx = dat_pl2$write_csv(temp_out, quote_style = 42) |> get_err_ctx() expect_identical(ctx$TypeMismatch, "&str") - # ok quote_style and quote - dat_pl2$write_csv(temp_out, quote_style = "always", quote = "+") - expect_snapshot_file(temp_out) - - # ok also - ctx = dat_pl2$write_csv(temp_out, quote_style = "non_numeric", quote = "+") - expect_snapshot_file(temp_out) - - # ok also - ctx = dat_pl2$write_csv(temp_out, quote_style = "never", quote = "+") - expect_snapshot_file(temp_out) - # zero byte quote ctx = dat_pl2$write_csv(temp_out, quote = "") |> get_err_ctx() expect_identical(ctx$Plain, "cannot extract single byte from empty string") @@ -74,7 +62,7 @@ patrick::with_parameters_test_that( )$write_csv(temp_out, quote_style = quote_style) expect_snapshot_file(temp_out) }, - quote_style = c("necessary", "always", "non_numeric") + quote_style = c("necessary", "always", "non_numeric", "never") ) test_that("write_csv: date_format works", { diff --git a/tests/testthat/test-sink_stream.R b/tests/testthat/test-sink_stream.R index 57fb9bebf..bd852359a 100644 --- a/tests/testthat/test-sink_stream.R +++ b/tests/testthat/test-sink_stream.R @@ -110,18 +110,6 @@ test_that("sink_csv: quote_style and quote works", { ctx = dat_pl2$sink_csv(temp_out, quote_style = 42) |> get_err_ctx() expect_identical(ctx$TypeMismatch, "&str") - # ok quote_style and quote - dat_pl2$sink_csv(temp_out, quote_style = "always", quote = "+") - expect_snapshot_file(temp_out) - - # ok also - ctx = dat_pl2$sink_csv(temp_out, quote_style = "non_numeric", quote = "+") - expect_snapshot_file(temp_out) - - # ok also - ctx = dat_pl2$sink_csv(temp_out, quote_style = "never", quote = "+") - expect_snapshot_file(temp_out) - # zero byte quote ctx = dat_pl2$sink_csv(temp_out, quote = "") |> get_err_ctx() expect_identical(ctx$Plain, "cannot extract single byte from empty string") @@ -145,7 +133,7 @@ patrick::with_parameters_test_that( )$sink_csv(temp_out, quote_style = quote_style) expect_snapshot_file(temp_out) }, - quote_style = c("necessary", "always", "non_numeric") + quote_style = c("necessary", "always", "non_numeric", "never") ) test_that("sink_csv: date_format works", { diff --git a/tools/lib-sums.tsv b/tools/lib-sums.tsv deleted file mode 100644 index 1ede804e4..000000000 --- a/tools/lib-sums.tsv +++ /dev/null @@ -1,6 +0,0 @@ -url sha256sum -https://github.com/pola-rs/r-polars/releases/download/lib-v0.34.0/libr_polars-0.34.0-aarch64-apple-darwin.tar.gz 95607b5f65f98ae21dd951d745fbe7a18379d0a5ef079911bcb603b6345f57b7 -https://github.com/pola-rs/r-polars/releases/download/lib-v0.34.0/libr_polars-0.34.0-aarch64-unknown-linux-gnu.tar.gz d6928142e01b1a133c2fb8dc8e773089148ebfe113638022c33880887dcc830d -https://github.com/pola-rs/r-polars/releases/download/lib-v0.34.0/libr_polars-0.34.0-x86_64-apple-darwin.tar.gz 305fb5d95f7bda89c21e773e1f0e7c8b49fbca549c16b991c3c00092c16064a3 -https://github.com/pola-rs/r-polars/releases/download/lib-v0.34.0/libr_polars-0.34.0-x86_64-pc-windows-gnu.tar.gz d6df63395bcc93bc5b7bd2ad847fb94029401201af01e63cea878103ada039b5 -https://github.com/pola-rs/r-polars/releases/download/lib-v0.34.0/libr_polars-0.34.0-x86_64-unknown-linux-gnu.tar.gz 6ea486124e384f9c47600db4c23e22cfd57971989864d6e49bc9c22c16b683ee From 51ff62a482087dd295f33d69d262bcef6e0f1970 Mon Sep 17 00:00:00 2001 From: Etienne Bacher <52219252+etiennebacher@users.noreply.github.com> Date: Thu, 9 Nov 2023 16:54:55 +0100 Subject: [PATCH 4/4] 0.35.0 -> 0.34.1 --- DESCRIPTION | 2 +- src/rust/Cargo.lock | 2 +- src/rust/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 61575d126..639d78df3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -112,5 +112,5 @@ Collate: 'zzz.R' Config/rextendr/version: 0.3.1 VignetteBuilder: knitr -Config/polars/LibVersion: 0.35.0 +Config/polars/LibVersion: 0.34.1 Config/polars/RustToolchainVersion: nightly-2023-10-12 diff --git a/src/rust/Cargo.lock b/src/rust/Cargo.lock index 2ff9cd654..d3793b0b0 100644 --- a/src/rust/Cargo.lock +++ b/src/rust/Cargo.lock @@ -1844,7 +1844,7 @@ dependencies = [ [[package]] name = "r-polars" -version = "0.35.0" +version = "0.34.1" dependencies = [ "either", "extendr-api", diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml index bc9c2d94f..c9a4bf00e 100644 --- a/src/rust/Cargo.toml +++ b/src/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "r-polars" -version = "0.35.0" +version = "0.34.1" edition = "2021" rust-version = "1.73" publish = false