Skip to content

Commit ff10b38

Browse files
authored
chore: Make get_list_builder infallible (#19217)
1 parent cca31b3 commit ff10b38

File tree

14 files changed

+42
-55
lines changed

14 files changed

+42
-55
lines changed

crates/polars-core/src/chunked_array/builder/list/mod.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,17 @@ pub fn get_list_builder(
8787
value_capacity: usize,
8888
list_capacity: usize,
8989
name: PlSmallStr,
90-
) -> PolarsResult<Box<dyn ListBuilderTrait>> {
90+
) -> Box<dyn ListBuilderTrait> {
9191
match inner_type_logical {
9292
#[cfg(feature = "dtype-categorical")]
9393
DataType::Categorical(Some(rev_map), ordering) => {
94-
return Ok(create_categorical_chunked_listbuilder(
94+
return create_categorical_chunked_listbuilder(
9595
name,
9696
*ordering,
9797
list_capacity,
9898
value_capacity,
9999
rev_map.clone(),
100-
))
100+
)
101101
},
102102
#[cfg(feature = "dtype-categorical")]
103103
DataType::Enum(Some(rev_map), ordering) => {
@@ -108,7 +108,7 @@ pub fn get_list_builder(
108108
value_capacity,
109109
(**rev_map).clone(),
110110
);
111-
return Ok(Box::new(list_builder));
111+
return Box::new(list_builder);
112112
},
113113
_ => {},
114114
}
@@ -123,36 +123,36 @@ pub fn get_list_builder(
123123
value_capacity,
124124
list_capacity,
125125
);
126-
Ok(Box::new(builder))
126+
Box::new(builder)
127127
},
128128
#[cfg(feature = "dtype-struct")]
129-
DataType::Struct(_) => Ok(Box::new(AnonymousOwnedListBuilder::new(
129+
DataType::Struct(_) => Box::new(AnonymousOwnedListBuilder::new(
130130
name,
131131
list_capacity,
132132
Some(inner_type_logical.clone()),
133-
))),
134-
DataType::Null => Ok(Box::new(ListNullChunkedBuilder::new(name, list_capacity))),
135-
DataType::List(_) => Ok(Box::new(AnonymousOwnedListBuilder::new(
133+
)),
134+
DataType::Null => Box::new(ListNullChunkedBuilder::new(name, list_capacity)),
135+
DataType::List(_) => Box::new(AnonymousOwnedListBuilder::new(
136136
name,
137137
list_capacity,
138138
Some(inner_type_logical.clone()),
139-
))),
139+
)),
140140
#[cfg(feature = "dtype-array")]
141-
DataType::Array(..) => Ok(Box::new(AnonymousOwnedListBuilder::new(
141+
DataType::Array(..) => Box::new(AnonymousOwnedListBuilder::new(
142142
name,
143143
list_capacity,
144144
Some(inner_type_logical.clone()),
145-
))),
145+
)),
146146
#[cfg(feature = "dtype-decimal")]
147-
DataType::Decimal(_, _) => Ok(Box::new(
147+
DataType::Decimal(_, _) => Box::new(
148148
ListPrimitiveChunkedBuilder::<Int128Type>::new_with_values_type(
149149
name,
150150
list_capacity,
151151
value_capacity,
152152
physical_type,
153153
inner_type_logical.clone(),
154154
),
155-
)),
155+
),
156156
_ => {
157157
macro_rules! get_primitive_builder {
158158
($type:ty) => {{
@@ -186,13 +186,13 @@ pub fn get_list_builder(
186186
Box::new(builder)
187187
}};
188188
}
189-
Ok(match_dtype_to_logical_apply_macro!(
189+
match_dtype_to_logical_apply_macro!(
190190
physical_type,
191191
get_primitive_builder,
192192
get_string_builder,
193193
get_binary_builder,
194194
get_bool_builder
195-
))
195+
)
196196
},
197197
}
198198
}

crates/polars-core/src/chunked_array/from_iterator.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ where
142142
capacity * 5,
143143
capacity,
144144
PlSmallStr::EMPTY,
145-
)
146-
.unwrap();
145+
);
147146

148147
builder.append_series(v.borrow()).unwrap();
149148
for s in it {
@@ -205,8 +204,7 @@ impl FromIterator<Option<Series>> for ListChunked {
205204
capacity * 5,
206205
capacity,
207206
PlSmallStr::EMPTY,
208-
)
209-
.unwrap();
207+
);
210208

211209
for _ in 0..init_null_count {
212210
builder.append_null();

crates/polars-core/src/chunked_array/from_iterator_par.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ fn materialize_list(
177177
value_capacity: usize,
178178
list_capacity: usize,
179179
) -> ListChunked {
180-
let mut builder = get_list_builder(&dtype, value_capacity, list_capacity, name).unwrap();
180+
let mut builder = get_list_builder(&dtype, value_capacity, list_capacity, name);
181181
for v in vectors {
182182
for val in v {
183183
builder.append_opt_series(val.as_ref()).unwrap();

crates/polars-core/src/chunked_array/list/iterator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ mod test {
393393

394394
#[test]
395395
fn test_iter_list() {
396-
let mut builder = get_list_builder(&DataType::Int32, 10, 10, PlSmallStr::EMPTY).unwrap();
396+
let mut builder = get_list_builder(&DataType::Int32, 10, 10, PlSmallStr::EMPTY);
397397
builder
398398
.append_series(&Series::new(PlSmallStr::EMPTY, &[1, 2, 3]))
399399
.unwrap();

crates/polars-core/src/chunked_array/ops/explode.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ mod test {
269269

270270
#[test]
271271
fn test_explode_list() -> PolarsResult<()> {
272-
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"))?;
272+
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"));
273273

274274
builder
275275
.append_series(&Series::new(PlSmallStr::EMPTY, &[1, 2, 3, 3]))
@@ -300,7 +300,7 @@ mod test {
300300
#[test]
301301
fn test_explode_empty_list_slot() -> PolarsResult<()> {
302302
// primitive
303-
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"))?;
303+
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"));
304304
builder
305305
.append_series(&Series::new(PlSmallStr::EMPTY, &[1i32, 2]))
306306
.unwrap();
@@ -319,7 +319,7 @@ mod test {
319319
);
320320

321321
// more primitive
322-
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"))?;
322+
let mut builder = get_list_builder(&DataType::Int32, 5, 5, PlSmallStr::from_static("a"));
323323
builder
324324
.append_series(&Series::new(PlSmallStr::EMPTY, &[1i32]))
325325
.unwrap();
@@ -344,7 +344,7 @@ mod test {
344344
);
345345

346346
// string
347-
let mut builder = get_list_builder(&DataType::String, 5, 5, PlSmallStr::from_static("a"))?;
347+
let mut builder = get_list_builder(&DataType::String, 5, 5, PlSmallStr::from_static("a"));
348348
builder
349349
.append_series(&Series::new(PlSmallStr::EMPTY, &["abc"]))
350350
.unwrap();
@@ -390,7 +390,7 @@ mod test {
390390
);
391391

392392
// boolean
393-
let mut builder = get_list_builder(&DataType::Boolean, 5, 5, PlSmallStr::from_static("a"))?;
393+
let mut builder = get_list_builder(&DataType::Boolean, 5, 5, PlSmallStr::from_static("a"));
394394
builder
395395
.append_series(&Series::new(PlSmallStr::EMPTY, &[true]))
396396
.unwrap();

crates/polars-core/src/chunked_array/ops/full.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ impl ChunkFullNull for BinaryOffsetChunked {
101101

102102
impl ChunkFull<&Series> for ListChunked {
103103
fn full(name: PlSmallStr, value: &Series, length: usize) -> ListChunked {
104-
let mut builder =
105-
get_list_builder(value.dtype(), value.len() * length, length, name).unwrap();
104+
let mut builder = get_list_builder(value.dtype(), value.len() * length, length, name);
106105
for _ in 0..length {
107106
builder.append_series(value).unwrap();
108107
}

crates/polars-core/src/named_from.rs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use chrono::NaiveDateTime;
99
#[cfg(feature = "dtype-time")]
1010
use chrono::NaiveTime;
1111

12-
use crate::chunked_array::builder::{get_list_builder, AnonymousListBuilder};
12+
use crate::chunked_array::builder::get_list_builder;
1313
use crate::prelude::*;
1414

1515
pub trait NamedFrom<T, Phantom: ?Sized> {
@@ -135,22 +135,13 @@ impl<T: AsRef<[Series]>> NamedFrom<T, ListType> for Series {
135135

136136
let dt = series_slice[0].dtype();
137137

138-
// inner type is also list so we need the anonymous builder
139-
if let DataType::List(_) = dt {
140-
let mut builder = AnonymousListBuilder::new(name, list_cap, Some(dt.clone()));
141-
for s in series_slice {
142-
builder.append_series(s).unwrap();
143-
}
144-
builder.finish().into_series()
145-
} else {
146-
let values_cap = series_slice.iter().fold(0, |acc, s| acc + s.len());
138+
let values_cap = series_slice.iter().fold(0, |acc, s| acc + s.len());
147139

148-
let mut builder = get_list_builder(dt, values_cap, list_cap, name).unwrap();
149-
for series in series_slice {
150-
builder.append_series(series).unwrap();
151-
}
152-
builder.finish().into_series()
140+
let mut builder = get_list_builder(dt, values_cap, list_cap, name);
141+
for series in series_slice {
142+
builder.append_series(series).unwrap();
153143
}
144+
builder.finish().into_series()
154145
}
155146
}
156147

@@ -165,7 +156,7 @@ impl<T: AsRef<[Option<Series>]>> NamedFrom<T, [Option<Series>]> for Series {
165156
None => &DataType::Null,
166157
};
167158

168-
let mut builder = get_list_builder(dt, values_cap, series_slice.len(), name).unwrap();
159+
let mut builder = get_list_builder(dt, values_cap, series_slice.len(), name);
169160
for series in series_slice {
170161
builder.append_opt_series(series.as_ref()).unwrap();
171162
}

crates/polars-core/src/series/any_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ fn any_values_to_list(
661661
};
662662

663663
let mut builder =
664-
get_list_builder(&list_inner_type, capacity * 5, capacity, PlSmallStr::EMPTY)?;
664+
get_list_builder(&list_inner_type, capacity * 5, capacity, PlSmallStr::EMPTY);
665665

666666
for av in avs {
667667
match av {

crates/polars-core/src/series/ops/reshape.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ impl Series {
259259
);
260260

261261
let mut builder =
262-
get_list_builder(s_ref.dtype(), s_ref.len(), rows as usize, s.name().clone())?;
262+
get_list_builder(s_ref.dtype(), s_ref.len(), rows as usize, s.name().clone());
263263

264264
let mut offset = 0u64;
265265
for _ in 0..rows {
@@ -285,7 +285,7 @@ mod test {
285285
fn test_to_list() -> PolarsResult<()> {
286286
let s = Series::new("a".into(), &[1, 2, 3]);
287287

288-
let mut builder = get_list_builder(s.dtype(), s.len(), 1, s.name().clone())?;
288+
let mut builder = get_list_builder(s.dtype(), s.len(), 1, s.name().clone());
289289
builder.append_series(&s).unwrap();
290290
let expected = builder.finish();
291291

crates/polars-expr/src/expressions/apply.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl ApplyExpr {
243243
let len = iters[0].size_hint().0;
244244

245245
let ca = if len == 0 {
246-
let mut builder = get_list_builder(&field.dtype, len * 5, len, field.name)?;
246+
let mut builder = get_list_builder(&field.dtype, len * 5, len, field.name);
247247
for _ in 0..len {
248248
container.clear();
249249
for iter in &mut iters {

crates/polars-expr/src/expressions/gather.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ impl GatherExpr {
255255
idx.series().len(),
256256
groups.len(),
257257
ac.series().name().clone(),
258-
)?;
258+
);
259259

260260
let iter = ac.iter_groups(false).zip(idx.iter_groups(false));
261261
for (s, idx) in iter {

crates/polars-lazy/src/tests/queries.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1486,7 +1486,7 @@ fn test_singleton_broadcast() -> PolarsResult<()> {
14861486
#[test]
14871487
fn test_list_in_select_context() -> PolarsResult<()> {
14881488
let s = Column::new("a".into(), &[1, 2, 3]);
1489-
let mut builder = get_list_builder(s.dtype(), s.len(), 1, s.name().clone()).unwrap();
1489+
let mut builder = get_list_builder(s.dtype(), s.len(), 1, s.name().clone());
14901490
builder.append_series(s.as_materialized_series()).unwrap();
14911491
let expected = builder.finish().into_column();
14921492

crates/polars-ops/src/chunked_array/list/namespace.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ pub trait ListNameSpaceImpl: AsList {
653653
ca.get_values_size() + vals_size_other + 1,
654654
length,
655655
ca.name().clone(),
656-
)?;
656+
);
657657
ca.into_iter().for_each(|opt_s| {
658658
let opt_s = opt_s.map(|mut s| {
659659
for append in &to_append {
@@ -690,7 +690,7 @@ pub trait ListNameSpaceImpl: AsList {
690690
ca.get_values_size() + vals_size_other + 1,
691691
length,
692692
ca.name().clone(),
693-
)?;
693+
);
694694

695695
for _ in 0..ca.len() {
696696
let mut acc = match first_iter.next().unwrap() {

crates/polars-python/src/map/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,7 @@ fn iterator_to_list(
257257
name: PlSmallStr,
258258
capacity: usize,
259259
) -> PyResult<ListChunked> {
260-
let mut builder =
261-
get_list_builder(dt, capacity * 5, capacity, name).map_err(PyPolarsErr::from)?;
260+
let mut builder = get_list_builder(dt, capacity * 5, capacity, name);
262261
for _ in 0..init_null_count {
263262
builder.append_null()
264263
}

0 commit comments

Comments
 (0)