upgrade polars to 0.17 (#4122)

This commit is contained in:
Nico Mandery
2021-11-16 00:01:02 +01:00
committed by GitHub
parent df87d90b8c
commit 16db368232
22 changed files with 67 additions and 74 deletions

View File

@ -603,7 +603,7 @@ where
{
match series.dtype() {
DataType::UInt32 | DataType::Int32 | DataType::UInt64 => {
let to_i64 = series.cast_with_dtype(&DataType::Int64);
let to_i64 = series.cast(&DataType::Int64);
match to_i64 {
Ok(series) => {
@ -661,7 +661,7 @@ where
{
match series.dtype() {
DataType::Float32 => {
let to_f64 = series.cast_with_dtype(&DataType::Float64);
let to_f64 = series.cast(&DataType::Float64);
match to_f64 {
Ok(series) => {
@ -731,7 +731,7 @@ where
{
match series.dtype() {
DataType::UInt32 | DataType::Int32 | DataType::UInt64 => {
let to_i64 = series.cast_with_dtype(&DataType::Int64);
let to_i64 = series.cast(&DataType::Int64);
match to_i64 {
Ok(series) => {
@ -789,7 +789,7 @@ where
{
match series.dtype() {
DataType::Float32 => {
let to_f64 = series.cast_with_dtype(&DataType::Float64);
let to_f64 = series.cast(&DataType::Float64);
match to_f64 {
Ok(series) => {

View File

@ -8,8 +8,8 @@ use nu_errors::ShellError;
use nu_source::{Span, Tag};
use num_bigint::BigInt;
use polars::prelude::{
DataFrame, DataType, Date64Type, Int64Type, IntoSeries, NamedFrom, NewChunkedArray, ObjectType,
PolarsNumericType, Series, TimeUnit,
DataFrame, DataType, DatetimeChunked, Int64Type, IntoSeries, NamedFrom, NewChunkedArray,
ObjectType, PolarsNumericType, Series,
};
use std::ops::{Deref, DerefMut};
@ -310,8 +310,8 @@ pub fn create_column(
}
}
}
DataType::Date32 => {
let casted = series.date32().map_err(|e| {
DataType::Date => {
let casted = series.date().map_err(|e| {
ShellError::labeled_error(
"Casting error",
format!("casting error: {}", e),
@ -347,8 +347,8 @@ pub fn create_column(
Ok(Column::new(casted.name().into(), values))
}
DataType::Date64 => {
let casted = series.date64().map_err(|e| {
DataType::Datetime => {
let casted = series.datetime().map_err(|e| {
ShellError::labeled_error(
"Casting error",
format!("casting error: {}", e),
@ -384,8 +384,8 @@ pub fn create_column(
Ok(Column::new(casted.name().into(), values))
}
DataType::Time64(timeunit) | DataType::Duration(timeunit) => {
let casted = series.time64_nanosecond().map_err(|e| {
DataType::Time => {
let casted = series.time().map_err(|e| {
ShellError::labeled_error(
"Casting error",
format!("casting error: {}", e),
@ -398,14 +398,7 @@ pub fn create_column(
.skip(from_row)
.take(size)
.map(|v| match v {
Some(a) => {
let nanoseconds = match timeunit {
TimeUnit::Second => a / 1_000_000_000,
TimeUnit::Millisecond => a / 1_000_000,
TimeUnit::Microsecond => a / 1_000,
TimeUnit::Nanosecond => a,
};
Some(nanoseconds) => {
let untagged = if let Some(bigint) = BigInt::from_i64(nanoseconds) {
UntaggedValue::Primitive(Primitive::Duration(bigint))
} else {
@ -633,7 +626,8 @@ pub fn from_parsed_columns(
}
});
let res = ChunkedArray::<Date64Type>::new_from_opt_iter(&name, it);
let res: DatetimeChunked =
ChunkedArray::<Int64Type>::new_from_opt_iter(&name, it).into();
df_series.push(res.into_series())
}

View File

@ -87,7 +87,7 @@ impl PartialEq for NuDataFrame {
// Casting needed to compare other numeric types with nushell numeric type.
// In nushell we only have i64 integer numeric types and any array created
// with nushell untagged primitives will be of type i64
DataType::UInt32 => match self_series.cast_with_dtype(&DataType::Int64) {
DataType::UInt32 => match self_series.cast(&DataType::Int64) {
Ok(series) => series,
Err(_) => return false,
},