polars-df 0.2.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,4 @@
1
- use magnus::exception::arg_error;
2
- use magnus::{Error, RArray, Value};
1
+ use magnus::{exception, Error, IntoValue, RArray, Value};
3
2
  use polars::prelude::*;
4
3
  use polars::series::IsSorted;
5
4
  use std::cell::RefCell;
@@ -30,11 +29,11 @@ impl RbSeries {
30
29
  }
31
30
 
32
31
  pub fn is_sorted_flag(&self) -> bool {
33
- matches!(self.series.borrow().is_sorted(), IsSorted::Ascending)
32
+ matches!(self.series.borrow().is_sorted_flag(), IsSorted::Ascending)
34
33
  }
35
34
 
36
35
  pub fn is_sorted_reverse_flag(&self) -> bool {
37
- matches!(self.series.borrow().is_sorted(), IsSorted::Descending)
36
+ matches!(self.series.borrow().is_sorted_flag(), IsSorted::Descending)
38
37
  }
39
38
 
40
39
  pub fn new_opt_bool(name: String, obj: RArray, strict: bool) -> RbResult<RbSeries> {
@@ -173,7 +172,7 @@ impl RbSeries {
173
172
  }
174
173
 
175
174
  pub fn get_idx(&self, idx: usize) -> RbResult<Value> {
176
- Ok(Wrap(self.series.borrow().get(idx).map_err(RbPolarsErr::from)?).into())
175
+ Ok(Wrap(self.series.borrow().get(idx).map_err(RbPolarsErr::from)?).into_value())
177
176
  }
178
177
 
179
178
  pub fn bitand(&self, other: &RbSeries) -> RbResult<Self> {
@@ -216,7 +215,7 @@ impl RbSeries {
216
215
  }
217
216
 
218
217
  pub fn dtype(&self) -> Value {
219
- Wrap(self.series.borrow().dtype().clone()).into()
218
+ Wrap(self.series.borrow().dtype().clone()).into_value()
220
219
  }
221
220
 
222
221
  pub fn inner_dtype(&self) -> Option<Value> {
@@ -224,15 +223,15 @@ impl RbSeries {
224
223
  .borrow()
225
224
  .dtype()
226
225
  .inner_dtype()
227
- .map(|dt| Wrap(dt.clone()).into())
226
+ .map(|dt| Wrap(dt.clone()).into_value())
228
227
  }
229
228
 
230
229
  pub fn set_sorted(&self, reverse: bool) -> Self {
231
230
  let mut out = self.series.borrow().clone();
232
231
  if reverse {
233
- out.set_sorted(IsSorted::Descending);
232
+ out.set_sorted_flag(IsSorted::Descending);
234
233
  } else {
235
- out.set_sorted(IsSorted::Ascending)
234
+ out.set_sorted_flag(IsSorted::Ascending)
236
235
  }
237
236
  out.into()
238
237
  }
@@ -255,7 +254,7 @@ impl RbSeries {
255
254
  .get(0)
256
255
  .map_err(RbPolarsErr::from)?,
257
256
  )
258
- .into())
257
+ .into_value())
259
258
  }
260
259
 
261
260
  pub fn min(&self) -> RbResult<Value> {
@@ -266,7 +265,7 @@ impl RbSeries {
266
265
  .get(0)
267
266
  .map_err(RbPolarsErr::from)?,
268
267
  )
269
- .into())
268
+ .into_value())
270
269
  }
271
270
 
272
271
  pub fn sum(&self) -> RbResult<Value> {
@@ -277,7 +276,7 @@ impl RbSeries {
277
276
  .get(0)
278
277
  .map_err(RbPolarsErr::from)?,
279
278
  )
280
- .into())
279
+ .into_value())
281
280
  }
282
281
 
283
282
  pub fn n_chunks(&self) -> usize {
@@ -288,7 +287,7 @@ impl RbSeries {
288
287
  let mut binding = self.series.borrow_mut();
289
288
  let res = binding.append(&other.series.borrow());
290
289
  if let Err(e) = res {
291
- Err(Error::runtime_error(e.to_string()))
290
+ Err(Error::new(exception::runtime_error(), e.to_string()))
292
291
  } else {
293
292
  Ok(())
294
293
  }
@@ -304,7 +303,7 @@ impl RbSeries {
304
303
 
305
304
  pub fn new_from_index(&self, index: usize, length: usize) -> RbResult<Self> {
306
305
  if index >= self.series.borrow().len() {
307
- Err(Error::new(arg_error(), "index is out of bounds"))
306
+ Err(Error::new(exception::arg_error(), "index is out of bounds"))
308
307
  } else {
309
308
  Ok(self.series.borrow().new_from_index(index, length).into())
310
309
  }
@@ -316,7 +315,10 @@ impl RbSeries {
316
315
  let series = self.series.borrow().filter(ca).unwrap();
317
316
  Ok(series.into())
318
317
  } else {
319
- Err(Error::runtime_error("Expected a boolean mask".to_string()))
318
+ Err(Error::new(
319
+ exception::runtime_error(),
320
+ "Expected a boolean mask".to_string(),
321
+ ))
320
322
  }
321
323
  }
322
324
 
@@ -515,7 +517,7 @@ impl RbSeries {
515
517
  } else if let Ok(_s) = series.date() {
516
518
  let a = RArray::with_capacity(series.len());
517
519
  for v in series.iter() {
518
- a.push::<Value>(Wrap(v).into()).unwrap();
520
+ a.push::<Value>(Wrap(v).into_value()).unwrap();
519
521
  }
520
522
  a
521
523
  } else {
@@ -546,7 +548,7 @@ impl RbSeries {
546
548
  .get(0)
547
549
  .unwrap_or(AnyValue::Null),
548
550
  )
549
- .into())
551
+ .into_value())
550
552
  }
551
553
 
552
554
  pub fn clone(&self) -> Self {
@@ -756,11 +758,11 @@ impl RbSeries {
756
758
  Ok(RbSeries::new(s))
757
759
  }
758
760
 
759
- pub fn to_dummies(&self) -> RbResult<RbDataFrame> {
761
+ pub fn to_dummies(&self, sep: Option<String>) -> RbResult<RbDataFrame> {
760
762
  let df = self
761
763
  .series
762
764
  .borrow()
763
- .to_dummies()
765
+ .to_dummies(sep.as_deref())
764
766
  .map_err(RbPolarsErr::from)?;
765
767
  Ok(df.into())
766
768
  }
@@ -1095,8 +1097,8 @@ pub fn to_series_collection(rs: RArray) -> RbResult<Vec<Series>> {
1095
1097
  Ok(series)
1096
1098
  }
1097
1099
 
1098
- pub fn to_rbseries_collection(s: Vec<Series>) -> Vec<RbSeries> {
1099
- s.into_iter().map(RbSeries::new).collect()
1100
+ pub fn to_rbseries_collection(s: Vec<Series>) -> RArray {
1101
+ RArray::from_iter(s.into_iter().map(RbSeries::new))
1100
1102
  }
1101
1103
 
1102
1104
  impl RbSeries {
@@ -36,13 +36,9 @@ module Polars
36
36
  # # │ cat ┆ i64 │
37
37
  # # ╞══════╪══════╡
38
38
  # # │ a ┆ 2 │
39
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
40
39
  # # │ b ┆ 3 │
41
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
42
40
  # # │ k ┆ 2 │
43
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
44
41
  # # │ z ┆ 1 │
45
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
46
42
  # # │ z ┆ 3 │
47
43
  # # └──────┴──────┘
48
44
  def set_ordering(ordering)
@@ -38,13 +38,9 @@ module Polars
38
38
  # # │ cat ┆ i64 │
39
39
  # # ╞══════╪══════╡
40
40
  # # │ a ┆ 2 │
41
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
42
41
  # # │ b ┆ 3 │
43
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
44
42
  # # │ k ┆ 2 │
45
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
46
43
  # # │ z ┆ 1 │
47
- # # ├╌╌╌╌╌╌┼╌╌╌╌╌╌┤
48
44
  # # │ z ┆ 3 │
49
45
  # # └──────┴──────┘
50
46
  def set_ordering(ordering)
@@ -24,7 +24,6 @@ module Polars
24
24
  # # │ i64 ┆ i64 │
25
25
  # # ╞═════╪═════╡
26
26
  # # │ 1 ┆ 3 │
27
- # # ├╌╌╌╌╌┼╌╌╌╌╌┤
28
27
  # # │ 2 ┆ 4 │
29
28
  # # └─────┴─────┘
30
29
  def from_hash(data, columns: nil)
@@ -54,9 +53,7 @@ module Polars
54
53
  # # │ i64 ┆ i64 │
55
54
  # # ╞═════╪═════╡
56
55
  # # │ 1 ┆ 4 │
57
- # # ├╌╌╌╌╌┼╌╌╌╌╌┤
58
56
  # # │ 2 ┆ 5 │
59
- # # ├╌╌╌╌╌┼╌╌╌╌╌┤
60
57
  # # │ 3 ┆ 6 │
61
58
  # # └─────┴─────┘
62
59
  #
@@ -70,9 +67,7 @@ module Polars
70
67
  # # │ i32 ┆ i64 │
71
68
  # # ╞═════╪═════╡
72
69
  # # │ 1 ┆ 4 │
73
- # # ├╌╌╌╌╌┼╌╌╌╌╌┤
74
70
  # # │ 2 ┆ 5 │
75
- # # ├╌╌╌╌╌┼╌╌╌╌╌┤
76
71
  # # │ 3 ┆ 6 │
77
72
  # # └─────┴─────┘
78
73
  #
@@ -85,9 +80,7 @@ module Polars
85
80
  # # │ i64 ┆ i64 ┆ i32 │
86
81
  # # ╞═════╪═════╪══════╡
87
82
  # # │ 1 ┆ 4 ┆ null │
88
- # # ├╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌┤
89
83
  # # │ 2 ┆ 5 ┆ null │
90
- # # ├╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌┤
91
84
  # # │ 3 ┆ 6 ┆ null │
92
85
  # # └─────┴─────┴──────┘
93
86
  # def from_hashes(hashes, infer_schema_length: 50, schema: nil)