From 5f57a55a55717723a585395c48a1c8758699be0a Mon Sep 17 00:00:00 2001 From: Marco Gorelli <33491632+MarcoGorelli@users.noreply.github.com> Date: Sat, 14 Sep 2024 12:11:42 +0100 Subject: [PATCH] preserve name in lazy schema tests --- docs/lists_in_lists_out.md | 4 ++-- docs/struct.md | 8 +++++--- src/expressions.rs | 10 ++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/lists_in_lists_out.md b/docs/lists_in_lists_out.md index f0c43df..6ad800d 100644 --- a/docs/lists_in_lists_out.md +++ b/docs/lists_in_lists_out.md @@ -36,8 +36,8 @@ a function to each element of a List Series. In this case, we just want to find elements, so we'll do: ```rust -fn list_idx_dtype(_input_fields: &[Field]) -> PolarsResult { - let field = Field::new(PlSmallStr::EMPTY, DataType::List(Box::new(IDX_DTYPE))); +fn list_idx_dtype(input_fields: &[Field]) -> PolarsResult { + let field = Field::new(input_fields[0].name.clone(), DataType::List(Box::new(IDX_DTYPE))); Ok(field.clone()) } diff --git a/docs/struct.md b/docs/struct.md index e1458ce..fda603e 100644 --- a/docs/struct.md +++ b/docs/struct.md @@ -37,6 +37,7 @@ fn shifted_struct(input_fields: &[Field]) -> PolarsResult { match field.dtype() { DataType::Struct(fields) => { let mut field_0 = fields[0].clone(); + let name = field_0.name.clone(); field_0.set_name(fields[fields.len() - 1].name().clone()); let mut fields = fields[1..] .iter() @@ -44,7 +45,7 @@ fn shifted_struct(input_fields: &[Field]) -> PolarsResult { .map(|(fld, name)| Field::new(name.name().clone(), fld.dtype().clone())) .collect::>(); fields.push(field_0); - Ok(Field::new(PlSmallStr::EMPTY, DataType::Struct(fields))) + Ok(Field::new(name, DataType::Struct(fields))) } _ => unreachable!(), } @@ -67,7 +68,8 @@ fn shift_struct(inputs: &[Series]) -> PolarsResult { return Ok(inputs[0].clone()); } let mut field_0 = fields[0].clone(); - field_0.rename(fields[fields.len() - 1].name()).clone(); + let name = field_0.name().clone(); + field_0.rename(fields[fields.len() - 1].name().clone()); let mut fields = fields[1..] .iter() .zip(fields[..fields.len() - 1].iter()) @@ -78,7 +80,7 @@ fn shift_struct(inputs: &[Series]) -> PolarsResult { }) .collect::>(); fields.push(field_0); - StructChunked::from_series(PlSmallStr::EMPTY, &fields).map(|ca| ca.into_series()) + StructChunked::from_series(name, &fields).map(|ca| ca.into_series()) } ``` diff --git a/src/expressions.rs b/src/expressions.rs index fdecaff..7ce7888 100644 --- a/src/expressions.rs +++ b/src/expressions.rs @@ -241,6 +241,7 @@ fn shifted_struct(input_fields: &[Field]) -> PolarsResult { match field.dtype() { DataType::Struct(fields) => { let mut field_0 = fields[0].clone(); + let name = field_0.name.clone(); field_0.set_name(fields[fields.len() - 1].name().clone()); let mut fields = fields[1..] .iter() @@ -248,7 +249,7 @@ fn shifted_struct(input_fields: &[Field]) -> PolarsResult { .map(|(fld, name)| Field::new(name.name().clone(), fld.dtype().clone())) .collect::>(); fields.push(field_0); - Ok(Field::new(PlSmallStr::EMPTY, DataType::Struct(fields))) + Ok(Field::new(name, DataType::Struct(fields))) }, _ => unreachable!(), } @@ -262,6 +263,7 @@ fn shift_struct(inputs: &[Series]) -> PolarsResult { return Ok(inputs[0].clone()); } let mut field_0 = fields[0].clone(); + let name = field_0.name().clone(); field_0.rename(fields[fields.len() - 1].name().clone()); let mut fields = fields[1..] .iter() @@ -273,7 +275,7 @@ fn shift_struct(inputs: &[Series]) -> PolarsResult { }) .collect::>(); fields.push(field_0); - StructChunked::from_series(PlSmallStr::EMPTY, &fields).map(|ca| ca.into_series()) + StructChunked::from_series(name, &fields).map(|ca| ca.into_series()) } use reverse_geocoder::ReverseGeocoder; @@ -290,8 +292,8 @@ fn reverse_geocode(inputs: &[Series]) -> PolarsResult { Ok(out.into_series()) } -fn list_idx_dtype(_input_fields: &[Field]) -> PolarsResult { - let field = Field::new(PlSmallStr::EMPTY, DataType::List(Box::new(IDX_DTYPE))); +fn list_idx_dtype(input_fields: &[Field]) -> PolarsResult { + let field = Field::new(input_fields[0].name.clone(), DataType::List(Box::new(IDX_DTYPE))); Ok(field.clone()) }