1.29.0
Python Polars 1.29.0
Added 7
- Highlight nodes in streaming phys plan graph
- Show physical stage graph
- Add structure for dispatching iceberg to native scans
- Add SQL support for checking array values with IN and NOT IN expressions
- Support DataFrame and Series init from torch Tensor objects
- Add RoundMode for Decimal and Float
- Inform users that IO error path file name can be expanded with POLARS_VERBOSE=1
Changed 1
- Avoid alloc_zeroed in decompression
Fixed 12
- Fix streaming outer join coalesce bug
- Remove redundant print statement in assert_frame_schema_equal()
- Fix bug in .unique() followed by .slice()
- Fix error reading parquet with datetimes written by pandas
- Fix schema_overrides not taking effect in NDJSON
- Fix fold flags and verify scalar correctness in apply
- Invalid values were triggering panics instead of returning null in dt.to_date / dt.to_datetime
- Ensure numpy isinstance check is lazy to avoid forcing the dependency
- Fix incorrectly dropped sort after unique for some queries
- Fix incorrect ternary agg state with mixed columns and scalars
- Make replace and replace_strict properly elementwise
- Fix index out of bounds panic on parquet prefiltering
🚀 Performance improvements
- Avoid alloc_zeroed in decompression (#22460)
✨ Enhancements
- Highlight nodes in streaming phys plan graph (#22535)
- Show physical stage graph (#22491)
- Add structure for dispatching iceberg to native scans (#22405)
- Add SQL support for checking array values with
INandNOT INexpressions (#22487) - Support
DataFrameandSeriesinit from torchTensorobjects (#22177) - Add
RoundModefor Decimal and Float (#22248) - Inform users that IO error path file name can be expanded with POLARS_VERBOSE=1 (#22427)
🐞 Bug fixes
- Streaming outer join coalesce bug (#22530)
- Remove redundant print statement in
assert_frame_schema_equal()(#22529) - Bug in
.unique()followed by.slice()(#22471) - Fix error reading parquet with datetimes written by pandas (#22524)
- Fix
schema_overridesnot taking effect in NDJSON (#22521) - Fold flags and verify scalar correctness in apply (#22519)
- Invalid values were triggering panics instead of returning
nullindt.to_date/dt.to_datetime(#22500) - Ensure numpy
isinstancecheck is lazy (avoid forcing the dependency) (#22486) - Incorrectly dropped sort after unique for some queries (#22489)
- Fix incorrect ternary agg state with mixed columns and scalars (#22496)
- Make
replaceandreplace_strictproperly elementwise (#22465) - Fix index out of bounds panic on parquet prefiltering (#22458)
- Integer underflow when checking parquet UTF-8 (#22472)
- Add implementation for
array.getwith idx overflow (#22449) - Deprecate
str.collection functions with flat strings and mark as elementwise (#22461) - Deprecate flat
list.gatherand mark as elementwise (#22456) - Inform users that IO error path file name can be expanded with POLARS_VERBOSE=1 (#22427)
📖 Documentation
- Fix typo in structs page (#22504)
🛠️ Other improvements
- Don't store name/dtype in grouper (#22525)
- Add structure for dispatching iceberg to native scans (#22405)
- Remove unused reduction code (#22462)
- Pin to explicit macOS version in code coverage (#22432)
Thank you to all our contributors for making this release possible! @AH-Merii, @JakubValtar, @Julian-J-S, @Kevin-Patyk, @Liyixin95, @MarcoGorelli, @Matt711, @alexander-beedie, @brianmakesthings, @coastalwhite, @nameexhaustion, @orlp and @ritchie46