Skip to content

Release v0.23.3

Choose a tag to compare

@Edwardvaneechoud Edwardvaneechoud released this 21 Oct 16:26
· 20 commits to main since this release
185c4e9

Highlights

Fixes

  • Casts keep Polars' types. In the Python API, cast(pl.Int32), pl.Int8, pl.Int16, pl.UInt* and pl.Float32 now keep their type instead of becoming Int64/Float64. cast(pl.Date) works on datetime columns. strict=False casts give null instead of raising, and Boolean casts keep nulls. Only strict casts to Int64, Float64 or String still become Formula nodes; other casts are added as Polars-code nodes.
  • Exported code matches the canvas. Generated Polars and FlowFrame code for to_boolean, to_date and to_datetime now gives the same rows as the flow. Before, the export could fail on text like "yes" or parse dates the canvas left empty. This applies to the desktop app and the browser editor.
  • Notebook push keeps Formula nodes. Formulas that have no Python expression form (for example to_date(...) or -[a]) stay formula text in the notebook, so pushing the notebook no longer turns them into Polars-code nodes.
  • Better type hints. Arithmetic and comparison operators on Expr now return Expr, so autocompletion works after expressions like 1 + ff.col("a").

Behaviour change

  • filter_split and ff.Gate now raise a clear error for a cast they can't express as a formula, such as cast(pl.Int32) > 1. Use cast(pl.Int64) or pass the condition as a formula string.

Security

  • The browser editor moves from polars-expr-transformer 0.6.0 to 0.6.5. A crafted text value inside a formula can no longer run Python in the editor.

What's Changed

Full Changelog: v0.23.2...v0.23.3