# Polars 1.40.1 — Python Polars 1.40.1 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2026-04-22 - Version: 1.40.1 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.40.1 - Permalink: https://whatsnew.fyi/product/polars/releases/1.40.1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Skip validity mask processing in __array_ufunc__ when no inputs have nulls - **added** — Add maintain_order parameter to merge_sorted - **fixed** — Honor having predicate in GroupBy iter - **fixed** — Use the physical dtype for NumUnorderedImplodeReducer arrow ListArray - **fixed** — Address bug in reduce_balanced for certain input length lists affecting pl.concat - **fixed** — Ensure list.sample() allows fraction > 1 when with_replacement=True - **fixed** — Ensure append() errors when upcast=False - **fixed** — Always rechunk sorts, prune sorts even in eager execution - **fixed** — Fix typing for DataFrame.__init__ and Series.__init__ so they don't require all optional dependencies to be installed ##### 🚀 Performance improvements - Skip validity mask processing in \_\_array\_ufunc\_\_ when no inputs have nulls (#27358) ##### ✨ Enhancements - Cargo deny (#27363) - Add `maintain_order` parameter to `merge_sorted` (#27263) ##### 🐞 Bug fixes - Honor `having` predicate in `GroupBy` iter (#27370) - Use the physical dtype for `NumUnorderedImplodeReducer` arrow `ListArray` (#27375) - Address bug in `reduce_balanced` for certain input length lists affecting `pl.concat` (#27352) - Ensure `list.sample()` allows `fraction` > 1 when `with_replacement=True` (#27350) - Ensure `append()` errors when `upcast=False` (#27346) - Always rechunk sorts, prune sorts even in eager execution (#27356) - Fix typing for `DataFrame.__init__` and `Series.__init__` so they don't require all optional dependencies to be installed (#27348) ##### 📖 Documentation - Split out openlineage docs into guide and configuration (#27371) - Add explanation on the observatory sqlite db file (#27354) ##### 🛠️ Other improvements - Disable mypy type checking for `pyarrow` calls (#27377) - Disable debug symbols in macos coverage tests (#27361) - Cargo deny (#27363) Thank you to all our contributors for making this release possible! @EndPositive, @Kevin-Patyk, @MarcoGorelli, @carnarez, @dsprenkels, @gab23r, @jonathanchang31, @kdn36, @mzjp2 and @ritchie46