# Polars 1.29.0 — Python Polars 1.29.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2025-04-30 - Version: 1.29.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.29.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.29.0 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** — Avoid alloc_zeroed in decompression - **added** — Highlight nodes in streaming phys plan graph - **added** — Show physical stage graph - **added** — Add structure for dispatching iceberg to native scans - **added** — Add SQL support for checking array values with IN and NOT IN expressions - **added** — Support DataFrame and Series init from torch Tensor objects - **added** — Add RoundMode for Decimal and Float - **added** — Inform users that IO error path file name can be expanded with POLARS_VERBOSE=1 - **fixed** — Fix streaming outer join coalesce bug - **fixed** — Remove redundant print statement in assert_frame_schema_equal() - **fixed** — Fix bug in .unique() followed by .slice() - **fixed** — Fix error reading parquet with datetimes written by pandas - **fixed** — Fix schema_overrides not taking effect in NDJSON - **fixed** — Fix fold flags and verify scalar correctness in apply - **fixed** — Invalid values were triggering panics instead of returning null in dt.to_date / dt.to_datetime - **fixed** — Ensure numpy isinstance check is lazy to avoid forcing the dependency - **fixed** — Fix incorrectly dropped sort after unique for some queries - **fixed** — Fix incorrect ternary agg state with mixed columns and scalars - **fixed** — Make replace and replace_strict properly elementwise - **fixed** — 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 `IN` and `NOT IN` expressions (#22487) - Support `DataFrame` and `Series` init from torch `Tensor` objects (#22177) - Add `RoundMode` for 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_overrides` not taking effect in NDJSON (#22521) - Fold flags and verify scalar correctness in apply (#22519) - Invalid values were triggering panics instead of returning ``null`` in `dt.to_date` / `dt.to_datetime` (#22500) - Ensure numpy `isinstance` check 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 `replace` and `replace_strict` properly elementwise (#22465) - Fix index out of bounds panic on parquet prefiltering (#22458) - Integer underflow when checking parquet UTF-8 (#22472) - Add implementation for `array.get` with idx overflow (#22449) - Deprecate `str.` collection functions with flat strings and mark as elementwise (#22461) - Deprecate flat `list.gather` and 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