py-1.32.3
pola-rs/polarspy-1.32.3Aug 14, 2025by github-actions[bot]
AI Summary
Python Polars 1.32.3 focuses on streaming engine improvements, IR graph visualization, and fixes for Arrow C API and serialization issues.
Key Highlights
- Native streaming peaks_{min,max}
- IR graph arrows and box nodes
- Fixes for Arrow C API and serialization
- DataTypeExpr.default_value addition
New Features
- Native streaming peaks_{min,max}
- IR graph arrows, monospace font, box nodes
- DataTypeExpr.default_value
- rle_id to native streaming node
Full Release Notes
## 🚀 Performance improvements
- Lower .sort(maintain\_order=True).head() to streaming top\_k (#24014)
- Lower top-k to streaming engine (#23979)
- Allow order pass through Filters and relax to row-seperable instead of elementwise (#23969)
## ✨ Enhancements
- Add native streaming for `peaks_{min,max}` (#24039)
- IR graph arrows, monospace font, box nodes (#24021)
- Add `DataTypeExpr.default_value` (#23973)
- Lower `rle` to a native streaming engine node (#23929)
- Add support for `Int128` to pyo3-polars (#23959)
## 🐞 Bug fixes
- Scan of multiple sources with `null` datatype (#24065)
- Categorical in nested data in row encoding (#24051)
- Missing length update in builder for pl.Array repetition (#24055)
- Race condition in global categories init (#24045)
- Revert "fix: Don't encode entire CategoricalMapping when going to Arrow (#24036)" (#24044)
- Error when using named functions (#24041)
- Don't encode entire CategoricalMapping when going to Arrow (#24036)
- Fix cast on arithmetic with `lit` (#23941)
- Incorrect slice-slice pushdown (#24032)
- Dedup common cache subplan in IR graph (#24028)
- Allow join on Decimal in in-memory engine (#24026)
- Fix datatypes for `eval.list` in aggregation context (#23911)
- Allocator capsule fallback panic (#24022)
- Accept another zlib "magic header" file signature (#24013)
- Fix `truediv` dtypes so `cast` in `list.eval` is not dropped (#23936)
- Don't reuse cached `return_dtype` for expanded map expressions (#24010)
- Cache id is not a valid dot node id (#24005)
- Align `map_elements` with and without `return_dtype` (#24007)
- Fix column dtype lifetime for `csv_write` segfault on `Categorical` (#23986)
- Allow serializing `LazyGroupBy.map_groups` (#23964)
- Correct allocator name in `PyCapsule` (#23968)
- Mismatched types for `write` function for windows (#23915)
- Fix `unpivot` panic when `index=` column not found (#23958)
## 📖 Documentation
- Fix a typo in "lazy/execution" user-guide page (#23983)
## 🛠️ Other improvements
- Update pyo3-polars versions (#24031)
- Remove insert\_error\_function (#24023)
- Remove cache hits, clean up in-mem prefill (#24019)
- Use .venv instead of venv in pyo3-polars examples (#24024)
- Fix test failing mypy (#24017)
- Remove outdated comment (#23998)
- Add a `_plr.pyi` to remove `mypy` issues (#23970)
- Don't define CountStar as dyn OptimizationRule (#23976)
- Rename `atol` and `rtol` to `abs_tol` and `rel_tol` (#23961)
- Introduce `Row{Encode,Decode}` as FunctionExpr (#23933)
- Dispatch through `pl.map_batches` and `AnonymousColumnsUdf` (#23867)
Thank you to all our contributors for making this release possible!
@JakubValtar, @Kevin-Patyk, @borchero, @cmdlineluser, @coastalwhite, @iishutov, @jarondl, @kdn36, @orlp, @rawhuul, @ritchie46 and @stijnherfst