Skip to content

Release v0.17.6

Choose a tag to compare

@Edwardvaneechoud Edwardvaneechoud released this 15 Sep 17:25
· 70 commits to main since this release

Changes since v0.17.5.

A small release: the Python API lowers more operations onto native, editable nodes (and the code export mirrors them), plus a few fixes. No schema changes, no migration.

Code conversion

More flowfile_frame calls now build native, editable nodes instead of opaque Polars-code blocks, so they round-trip through the visual editor and export as clean code:

  • drop(...) → a Select node with the dropped columns hidden (selectors and strict-missing names stay on the code path).
  • filter(...) / filter_split(...) → a Filter node whenever the predicate has a formula form (comparisons, &/|/~, is_in, is_null, the .str/.dt helpers).
  • when(...).then(...).otherwise(...) inside with_columns → a Formula node.
  • col(x).mean().over(g) (and sum/min/max/count/std/median) → a Window Functions node.

Exporting a flow to Python mirrors this: filters emit native predicates, and drop-shaped selects export as drop(...) rather than a hand-listed column set.

Window node partition aggregates

The Window Functions node gains partition-wide aggregates — Mean, Sum, Min, Max, Count, Std, Median — that compute one value per partition and broadcast it to every row (SQL AVG(x) OVER (PARTITION BY g)). Available in the node UI and via col(x).mean().over(g).

Fixes

  • The Join node no longer offers Cross as a join type — the backend rejects it on a join node, so the option never worked.
  • filter_split now raises a clear error when a predicate has no formula form, instead of silently storing raw Polars text a two-output node can't run.
  • Corrected the in-app node documentation links for Window Functions, Wait For, List Files and Data Cleansing.