⚠️ Deprecations
- Deprecate
strictparameter ofpl.concat, replace with newhow='horizontal_extend'(#27965)
🚀 Performance improvements
- Add a sampled resolve mode for multi-file parquet metadata (#28111)
- Speed up small dtype series sums with a upcast sum kernel (#27958)
- Don't block on path expansion (#28073)
✨ Enhancements
- Close ResourceWarning leaks in database tests (#28066)
🐞 Bug fixes
- Incorrect sorted fast-path returning nan for grouped max (#28129)
- Fix panic on scan_parquet filter of fixed-size binary column (#28122)
- Fix decimal dynamic float cast (#28126)
- Fix pyiceberg key dot HDFS prefix filter (#28109)
- Fix projection pushdown panic on
select(len())aftergroupby(#28108) - Fully resolve remaining
ResourceWarningleaks in database/iceberg tests (#28107) - Expiry time loading for AWS
DeferredRefreshableCredentials(#28099) - Close ResourceWarning leaks in database tests (#28066)
- Avoid panic on temporal extraction for datetime columns with nulls (#28054)
- Prevent panic in
replacewhenold/newcontain Expr or object dtype values (#27433)
📖 Documentation
- Fix dataset regression in the examples (#28131)
- Emphasize to generally not ever write Rust tests (#28082)
- Mention Polars skill in User Guide's LLM section (#28113)
🛠️ Other improvements
- Disallow usage of
tokio::spawnin clippy (#28123) - Improve
Makefilewith respect tovenvrobustness (#28110) - Remove legacy prelude glob imports from leaf files (#28114)
- Skip pandas 3.0.4 due to
pd.TimeDeltasegfault (#28125) - Update
mypyto the new2.xrelease (#28116) - Ensure
pyreflychecks run as part ofmake pre-commit(#28095) - Fix
test_select_explode_height_filter_order_byfailure whenPOLARS_MAX_THREADS=2(#28090) - Add Morsel::height (#28060)
Thank you to all our contributors for making this release possible!
@0guban0v, @Kevin-Patyk, @TNieuwdorp, @alexander-beedie, @azimafroozeh, @dsprenkels, @kdn36, @nameexhaustion, @orlp, @raphaelroshan, @ritchie46 and @sar-cheng