Skip to content

Commit 8389398

Browse files
authored
Upgrading to rs-0.35 (pola-rs#144)
* Upgrading to rs-0.35 * Upgrading TS, fixing tests * Upgrading napi, adding tests * Fixing linting error
1 parent 14a8fb4 commit 8389398

22 files changed

+259
-179
lines changed

.github/workflows/docs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Install latest Rust nightly
1515
uses: dtolnay/rust-toolchain@stable
1616
with:
17-
toolchain: nightly-2023-07-27
17+
toolchain: nightly-2023-11-15
1818
components: rustfmt, clippy
1919
- name: Install ghp-import
2020
uses: actions/setup-python@v4

.github/workflows/test-js.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Install latest Rust nightly
1919
uses: dtolnay/rust-toolchain@stable
2020
with:
21-
toolchain: nightly-2023-07-27
21+
toolchain: nightly-2023-11-15
2222
components: rustfmt, clippy
2323
- run: yarn --version
2424
- name: Install Node Dependencies
@@ -43,7 +43,7 @@ jobs:
4343
- name: Install latest Rust nightly
4444
uses: dtolnay/rust-toolchain@stable
4545
with:
46-
toolchain: nightly-2023-07-27
46+
toolchain: nightly-2023-11-15
4747
components: rustfmt, clippy
4848
- name: Bun version
4949
uses: oven-sh/setup-bun@v1

Cargo.toml

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ crate-type = ["cdylib", "lib"]
1515
[dependencies]
1616
ahash = "0.8.3"
1717
bincode = "1.3.3"
18-
napi = {version = "2.13.3", default-features = false, features = ["napi8", "serde-json", "experimental"]}
19-
napi-derive = {version = "2.13.0", default-features = false}
20-
polars-core = {git = "https://github.com/pola-rs/polars.git", rev = "60adaef43e1b3306d5da8cf736accea2e3f03d9b", default-features = false}
21-
polars-io = {git = "https://github.com/pola-rs/polars.git", rev = "60adaef43e1b3306d5da8cf736accea2e3f03d9b", default-features = false}
22-
polars-lazy = {git = "https://github.com/pola-rs/polars.git", rev = "60adaef43e1b3306d5da8cf736accea2e3f03d9b", default-features = false}
18+
napi = {version = "2.14.1", default-features = false, features = ["napi8", "serde-json"]}
19+
napi-derive = {version = "2.14.2", default-features = false}
20+
polars-core = {git = "https://github.com/pola-rs/polars.git", rev = "b13afbecac039205dacbaca766ecca4bf441b347", default-features = false}
21+
polars-io = {git = "https://github.com/pola-rs/polars.git", rev = "b13afbecac039205dacbaca766ecca4bf441b347", default-features = false}
22+
polars-lazy = {git = "https://github.com/pola-rs/polars.git", rev = "b13afbecac039205dacbaca766ecca4bf441b347", default-features = false}
2323
thiserror = "1"
24-
smartstring = { version = "1" }
24+
smartstring = {version = "1"}
2525
serde_json = {version = "1"}
2626
either = "1.9"
2727

@@ -52,7 +52,6 @@ features = [
5252
"concat_str",
5353
"row_hash",
5454
"reinterpret",
55-
"decompress-fast",
5655
"mode",
5756
"extract_jsonpath",
5857
"lazy_regex",
@@ -66,8 +65,6 @@ features = [
6665
"diff",
6766
"pct_change",
6867
"moment",
69-
"true_div",
70-
"dtype-categorical",
7168
"diagonal_concat",
7269
"horizontal_concat",
7370
"abs",
@@ -91,13 +88,14 @@ features = [
9188
"arg_where",
9289
"timezones",
9390
"peaks",
94-
"string_justify",
91+
"string_pad",
92+
"cov"
9593
]
9694
git = "https://github.com/pola-rs/polars.git"
97-
rev = "60adaef43e1b3306d5da8cf736accea2e3f03d9b"
95+
rev = "b13afbecac039205dacbaca766ecca4bf441b347"
9896

9997
[build-dependencies]
100-
napi-build = "2.0.1"
98+
napi-build = "2.1.0"
10199

102100
[profile.release]
103101
codegen-units = 1

__tests__/dataframe.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1539,7 +1539,7 @@ describe("io", () => {
15391539
test("writeCSV:string:header", () => {
15401540
const actual = df
15411541
.clone()
1542-
.writeCSV({ sep: "X", hasHeader: false })
1542+
.writeCSV({ sep: "X", includeHeader: false })
15431543
.toString();
15441544
const expected = "1X6\n2X2\n9X8\n";
15451545
expect(actual).toEqual(expected);

__tests__/expr.test.ts

Lines changed: 58 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,8 @@ describe("expr", () => {
331331
});
332332
test.each`
333333
args | hashValue
334-
${[0]} | ${6574965099265562227n}
335-
${[{ k0: 1n, k1: 1 }]} | ${6574965099265562227n}
334+
${[0]} | ${6340063056640878722n}
335+
${[{ k0: 1n, k1: 1 }]} | ${9788354747012366704n}
336336
`("$# hash", ({ args, hashValue }) => {
337337
const df = pl.DataFrame({ a: [1] });
338338
const expected = pl.DataFrame({ hash: [hashValue] });
@@ -863,19 +863,19 @@ describe("expr", () => {
863863
"take:list": [1, 2, 2, 3],
864864
});
865865
const actual = df.select(
866-
col("a").take([0, 2, 3, 5]).as("take:array"),
866+
col("a").gather([0, 2, 3, 5]).as("take:array"),
867867
col("a")
868-
.take(lit([0, 1, 2, 3]))
868+
.gather(lit([0, 1, 2, 3]))
869869
.as("take:list"),
870870
);
871871
expect(actual).toFrameEqual(expected);
872872
});
873-
test("takeEvery", () => {
873+
test("gatherEvery", () => {
874874
const df = pl.DataFrame({ a: [1, 1, 2, 2, 3, 3, 8, null, 1] });
875875
const expected = pl.DataFrame({
876876
everyother: [1, 2, 3, 8, 1],
877877
});
878-
const actual = df.select(col("a").takeEvery(2).as("everyother"));
878+
const actual = df.select(col("a").gatherEvery(2).as("everyother"));
879879
expect(actual).toFrameEqual(expected);
880880
});
881881
test("unique", () => {
@@ -1391,6 +1391,21 @@ describe("expr.str", () => {
13911391
});
13921392
});
13931393
describe("expr.lst", () => {
1394+
test("argMax", () => {
1395+
const s0 = pl.Series("a", [[1, 2, 3]]);
1396+
let actual = s0.lst.argMax();
1397+
let expected = pl.Series("a", [2]);
1398+
expect(actual.seriesEqual(expected));
1399+
actual = s0.lst.argMin();
1400+
expected = pl.Series("a", [0]);
1401+
expect(actual.seriesEqual(expected));
1402+
});
1403+
test("contains", () => {
1404+
const s0 = pl.Series("a", [[1, 2]]);
1405+
const actual = s0.lst.contains(1);
1406+
const expected = pl.Series("a", [true]);
1407+
expect(actual.seriesEqual(expected));
1408+
});
13941409
test("concat", () => {
13951410
const s0 = pl.Series("a", [[1, 2]]);
13961411
const s1 = pl.Series("b", [[3, 4, 5]]);
@@ -1422,6 +1437,12 @@ describe("expr.lst", () => {
14221437
.seriesEqual(expected),
14231438
);
14241439
});
1440+
test("diff", () => {
1441+
const s0 = pl.Series("a", [[1, 2, 3]]);
1442+
const actual = s0.lst.diff();
1443+
const expected = pl.Series("a", [null, 1, 1]);
1444+
expect(actual.seriesEqual(expected));
1445+
});
14251446
test("get", () => {
14261447
const df = pl.DataFrame({ a: [[1, 10, 11], [2, 10, 12], [1]] });
14271448
const expected = pl.DataFrame({ get: [11, 12, null] });
@@ -1448,6 +1469,12 @@ describe("expr.lst", () => {
14481469
expect(actual).toFrameEqual(expected);
14491470
expect(actualFromSeries).toFrameEqual(expected);
14501471
});
1472+
test("eval", () => {
1473+
const s0 = pl.Series("a", [[3, 5, 6]]);
1474+
const actual = s0.lst.eval(pl.element().rank());
1475+
const expected = pl.Series("a", [1, 2, 3]);
1476+
expect(actual.seriesEqual(expected));
1477+
});
14511478
test("first", () => {
14521479
const df = pl.DataFrame({
14531480
a: [
@@ -1466,6 +1493,30 @@ describe("expr.lst", () => {
14661493
expect(actual).toFrameEqual(expected);
14671494
expect(actualFromSeries).toFrameEqual(expected);
14681495
});
1496+
test("head", () => {
1497+
const s0 = pl.Series("a", [[3, 5, 6, 7, 8]]);
1498+
let actual = s0.lst.head(1);
1499+
let expected = pl.Series("a", [3]);
1500+
expect(actual.seriesEqual(expected));
1501+
actual = s0.lst.head();
1502+
expected = pl.Series("a", [3, 5, 6, 7, 8]);
1503+
expect(actual.seriesEqual(expected));
1504+
});
1505+
test("tail", () => {
1506+
const s0 = pl.Series("a", [[3, 5, 6, 7, 8]]);
1507+
let actual = s0.lst.tail(1);
1508+
let expected = pl.Series("a", [8]);
1509+
expect(actual.seriesEqual(expected));
1510+
actual = s0.lst.tail();
1511+
expected = pl.Series("a", [3, 5, 6, 7, 8]);
1512+
expect(actual.seriesEqual(expected));
1513+
});
1514+
test("shift", () => {
1515+
const s0 = pl.Series("a", [[3, 5, 6]]);
1516+
const actual = s0.lst.shift(-1);
1517+
const expected = pl.Series("a", [5, 6, null]);
1518+
expect(actual.seriesEqual(expected));
1519+
});
14691520
test("join", () => {
14701521
const df = pl.DataFrame({ a: [["ab", "cd"], ["e", "fg"], ["h"]] });
14711522
const expected = pl.DataFrame({ joinedString: ["ab,cd", "e,fg", "h"] });
@@ -1630,16 +1681,13 @@ describe("expr.lst", () => {
16301681
col("a").lst.sort().as("sort"),
16311682
col("a").lst.sort({ reverse: true }).as("sort:reverse"),
16321683
);
1633-
16341684
const sortSeries = df.getColumn("a").lst.sort().rename("sort");
1635-
16361685
const sortReverseSeries = df
16371686
.getColumn("a")
1638-
.lst.sort(true)
1687+
.lst.sort({ reverse: true })
16391688
.rename("sort:reverse");
16401689

16411690
const actualFromSeries = pl.DataFrame([sortSeries, sortReverseSeries]);
1642-
16431691
expect(actual).toFrameEqual(expected);
16441692
expect(actualFromSeries).toFrameEqual(expected);
16451693
expect(actualFromSeries).toFrameEqual(actual);

__tests__/lazyframe.test.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,30 @@ describe("lazyframe", () => {
2727
const actual = await expected.lazy().collect();
2828
expect(actual).toFrameEqual(expected);
2929
});
30-
3130
test("describeOptimizedPlan", () => {
3231
const df = pl
3332
.DataFrame({
3433
foo: [1, 2],
3534
bar: ["a", "b"],
3635
})
3736
.lazy();
38-
const actual = df.describeOptimizedPlan().replace(/\s+/g, " ");
39-
expect(actual).toEqual(
40-
`DF ["foo", "bar"]; PROJECT */2 COLUMNS; SELECTION: "None"`,
41-
);
37+
let actual = df.describeOptimizedPlan().replace(/\s+/g, " ");
38+
const expected = `DF ["foo", "bar"]; PROJECT */2 COLUMNS; SELECTION: "None"`;
39+
expect(actual).toEqual(expected);
40+
actual = df.describePlan().replace(/\s+/g, " ");
41+
expect(actual).toEqual(expected);
42+
});
43+
test("cache", () => {
44+
const df = pl.DataFrame({
45+
foo: [1, 2, 3],
46+
});
47+
const expected = pl.DataFrame({
48+
foo: [1, 2, 3],
49+
});
50+
let actual = df.lazy().cache().collectSync();
51+
expect(actual).toFrameEqual(expected);
52+
actual = df.lazy().clone().collectSync();
53+
expect(actual).toFrameEqual(expected);
4254
});
4355
test("drop", () => {
4456
const df = pl.DataFrame({
@@ -240,12 +252,10 @@ describe("lazyframe", () => {
240252
.lazy()
241253
.explode("list_1")
242254
.collectSync();
243-
244255
const expected = pl.DataFrame({
245256
letters: ["c", "c", "a", "a"],
246257
list_1: [1, 2, 1, 3],
247258
});
248-
249259
expect(actual).toFrameEqualIgnoringOrder(expected);
250260
});
251261
test("fetch", async () => {

__tests__/series.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,8 @@ describe("series", () => {
409409
${numSeries()} | ${"sort"} | ${[{ reverse: false }]}
410410
${numSeries()} | ${"sum"} | ${[]}
411411
${numSeries()} | ${"tail"} | ${[]}
412-
${numSeries()} | ${"take"} | ${[[1, 2]]}
413-
${numSeries()} | ${"takeEvery"} | ${[1]}
412+
${numSeries()} | ${"gather"} | ${[[1, 2]]}
413+
${numSeries()} | ${"gatherEvery"} | ${[1]}
414414
${numSeries()} | ${"toArray"} | ${[]}
415415
${numSeries()} | ${"unique"} | ${[]}
416416
${numSeries()} | ${"valueCounts"} | ${[]}
@@ -472,7 +472,7 @@ describe("series", () => {
472472
${"getIndex"} | ${pl.Series(["a", "b", "c"]).getIndex(0)} | ${"a"}
473473
${"hasValidity"} | ${pl.Series([1, null, 2]).hasValidity()} | ${true}
474474
${"hasValidity"} | ${pl.Series([1, 1, 2]).hasValidity()} | ${false}
475-
${"hash"} | ${pl.Series([1]).hash()} | ${pl.Series([6574965099265562227n])}
475+
${"hash"} | ${pl.Series([1]).hash()} | ${pl.Series([6340063056640878722n])}
476476
${"head"} | ${pl.Series([1, 2, 3, 4, 5, 5, 5]).head()} | ${pl.Series([1, 2, 3, 4, 5])}
477477
${"head"} | ${pl.Series([1, 2, 3, 4, 5, 5, 5]).head(2)} | ${pl.Series([1, 2])}
478478
${"interpolate"} | ${pl.Series([1, 2, null, null, 5]).interpolate()} | ${pl.Series([1, 2, 3, 4, 5])}
@@ -523,8 +523,8 @@ describe("series", () => {
523523
${"sort"} | ${pl.Series([4, 2, 5, 0]).sort({ reverse: false })} | ${pl.Series([0, 2, 4, 5])}
524524
${"sum"} | ${pl.Series([1, 2, 2, 1]).sum()} | ${6}
525525
${"tail"} | ${pl.Series([1, 2, 2, 1]).tail(2)} | ${pl.Series([2, 1])}
526-
${"takeEvery"} | ${pl.Series([1, 3, 2, 9, 1]).takeEvery(2)} | ${pl.Series([1, 2, 1])}
527-
${"take"} | ${pl.Series([1, 3, 2, 9, 1]).take([0, 1, 3])} | ${pl.Series([1, 3, 9])}
526+
${"gatherEvery"} | ${pl.Series([1, 3, 2, 9, 1]).gatherEvery(2)} | ${pl.Series([1, 2, 1])}
527+
${"gather"} | ${pl.Series([1, 3, 2, 9, 1]).gather([0, 1, 3])} | ${pl.Series([1, 3, 9])}
528528
${"toArray"} | ${pl.Series([1, 2, 3]).toArray()} | ${[1, 2, 3]}
529529
${"unique"} | ${pl.Series([1, 2, 3, 3]).unique().sort()} | ${pl.Series([1, 2, 3])}
530530
${"cumCount"} | ${pl.Series([1, 2, 3, 3]).cumCount()} | ${pl.Series([0, 1, 2, 3])}

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@
5656
},
5757
"devDependencies": {
5858
"@biomejs/biome": "^1.3.3",
59-
"@napi-rs/cli": "^2.16.4",
60-
"@types/chance": "^1.1.5",
61-
"@types/jest": "^29.5.7",
62-
"@types/node": "^20.8.10",
59+
"@napi-rs/cli": "^2.16.5",
60+
"@types/chance": "^1.1.6",
61+
"@types/jest": "^29.5.10",
62+
"@types/node": "^20.10.0",
6363
"chance": "^1.1.11",
6464
"jest": "^29.7.0",
6565
"source-map-support": "^0.5.21",
6666
"ts-jest": "^29.1.1",
6767
"ts-node": "^10.9.1",
6868
"typedoc": "^0.25.3",
69-
"typescript": "5.2.2"
69+
"typescript": "5.3.2"
7070
},
71-
"packageManager": "yarn@3.6.2",
71+
"packageManager": "yarn@4.0.2",
7272
"workspaces": [
7373
"benches"
7474
]

0 commit comments

Comments
 (0)