py-1.40.1
paulpierre/markdown-crawlerpy-1.40.1Apr 22, 2026by github-actions[bot]
AI Summary
This release focuses on performance optimization and bug fixes for the Polars Python library, specifically addressing null handling, sorting behavior, and type checking issues.
Key Highlights
- Skip validity mask processing in `__array_ufunc__` when no inputs have nulls for performance.
- Add `maintain_order` parameter to `merge_sorted` function.
- Honor `having` predicate in `GroupBy` iteration.
- Ensure `list.sample()` allows `fraction` > 1 when `with_replacement=True`.
- Fix typing for `DataFrame` and `Series` initialization to not require all optional dependencies.
New Features
- Add `maintain_order` parameter to `merge_sorted` function.
Full Release Notes
## π 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