py-1.41.1
wxt-dev/wxtpy-1.41.1May 27, 2026by github-actions[bot]
AI Summary
Fixes memory usage regressions and stabilizes object store credential provider caching, while resolving sorting and grouping errors.
Key Highlights
- Fix memory usage regression affecting TPCH Q22
- Stabilize object store credentialprovider cache key
- Raise length mismatch in multiple sort_by in group_by
- Add POLARS_ALLOW_NESTED_CSPE env var
- Fix loss of precision for smaller floating types
New Features
- Memory usage regression fix
- Nested CSPE opt-in via environment variable
- Credential provider stabilization
- Sorting and grouping error fixes
Full Release Notes
## 🚀 Performance improvements - Adaptive size dispatch to hashset or radix sort + capacity-aware reset in `agg_n_unique` (#27719) ## ✨ Enhancements - Allow deeper expressions (#27768) ## 🐞 Bug fixes - Raise length mismatch in multiple `sort_by` in `group_by` (#27772) - Respect min\_samples for rolling\_by ops with nulls (#27706) - Fix memory usage regression affecting TPCH Q22 (#27758) - Add `POLARS_ALLOW_NESTED_CSPE` env var and make nested CSPE opt-in (#27765) - Post-apply residual pyarrow predicates (#27764) - Fix loss of precision for smaller floating types(#27662) (#27732) - Filter at scan dropped in CSPE filter pushdown (#27763) - Fix portstate assertion error on is\_in (#27757) - Fix incorrect when/then after forward fill / reverse in groupby (#27745) - Accept empty Thrift list encoded as bare 0x00 byte in parquet metadata (#27754) - Stabilize object store `credentialprovider` cache key (#27712) - Add to `merge_sorted` docs that the input must be nulls first (#27743) ## 📖 Documentation - Docs fixes (#27766) - Sync from Polars Cloud (#27751) - Add to `merge_sorted` docs that the input must be nulls first (#27743) ## 🛠️ Other improvements - Attribute annotations for `CatalogCredentialProvider` (#27739) - Solve `type: ignore` in \_AioDataFrameResult (#27311) - Remove dead code in `_write_utils.py` (#27721) - Remove unnecessary ``not isinstance(v, DataType)`` check (#27723) Thank you to all our contributors for making this release possible! @EndPositive, @JakubValtar, @MarcoGorelli, @NicoOhR, @azimafroozeh, @carnarez, @dsprenkels, @jorenham, @kdn36, @nameexhaustion, @orlp and @ritchie46