Skip to content

Commit

Permalink
fix parsing quoted floats
Browse files Browse the repository at this point in the history
  • Loading branch information
ritchie46 committed Jan 30, 2022
1 parent d75252c commit 3587b6a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
19 changes: 19 additions & 0 deletions polars/polars-io/src/csv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1457,4 +1457,23 @@ b5bbf310dffe3372fd5d37a18339fea5,e3fd7b95be3453a34361da84f815687d,-2,0.0335936,8
assert_eq!(df.shape(), (2, 9));
Ok(())
}

#[test]
fn test_quoted_bool_ints() -> Result<()> {
let csv = r#"foo,bar,baz
1,"4","false"
3,"5","false"
5,"6","true"
"#;
let file = Cursor::new(csv);
let df = CsvReader::new(file).finish()?;
let expected = df![
"foo" => [1, 3, 5],
"bar" => [4, 5, 6],
"baz" => [false, false, true],
]?;
assert!(df.frame_equal_missing(&expected));

Ok(())
}
}
4 changes: 4 additions & 0 deletions polars/polars-io/src/csv_core/buffer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,10 @@ impl ParsedBuffer<BooleanType> for BooleanChunkedBuilder {
self.append_value(false);
} else if bytes.eq_ignore_ascii_case(b"true") {
self.append_value(true);
} else if bytes.eq_ignore_ascii_case(b"\"false\"") {
self.append_value(false);
} else if bytes.eq_ignore_ascii_case(b"\"true\"") {
self.append_value(true);
} else if ignore_errors || bytes.is_empty() {
self.append_null();
} else {
Expand Down

0 comments on commit 3587b6a

Please sign in to comment.