# Polars 1.32.1 — Python Polars 1.32.1 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2025-08-06 - Version: 1.32.1 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.32.1 - Permalink: https://whatsnew.fyi/product/polars/releases/1.32.1 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'. --- - **added** — Implement `dt.days_in_month` function - **added** — Implement `repeat_by` for `Array` and `Null` - **added** — Support initializing from `__arrow_c_schema__` protocol in `pl.Schema` - **changed** — Lower `rle_id` to a native streaming node - **changed** — Lower `extend_constant` to the streaming engine - **changed** — Lower `pl.repeat` to streaming engine - **changed** — Lower `unique_counts` and `value_counts` to streaming engine - **changed** — Pass `endpoint_url` loaded from `CredentialProviderAWS` to `scan/write_delta` - **changed** — Dispatch `scan_iceberg` to native by default - **changed** — Making `Expr.rolling_*_by` methods available to `pl.Series` - **changed** — Make `rolling_map` serializable - **changed** — Change typing for `.remote()` from `LazyFrameExt` to `LazyFrameRemote` - **changed** — Reinterpret binary data to fixed size numerical array - **changed** — Update `BytecodeParser` opcode awareness for upcoming Python 3.14 - **deprecated** — Add DeprecationWarning on passing physical ordering to Categorical - **fixed** — Categorical namespace functions fail on `Enum` columns - **fixed** — Properly set sumwise complete on filter for missing columns - **fixed** — Restore Arrow-FFI-based Python<->Rust conversion in pyo3-polars - **fixed** — Group By with filters - **fixed** — Fix `read_csv` ignoring Decimal schema for header-only data ##### 🚀 Performance improvements - Optimise `BytecodeParser` usage from `warn_on_inefficient_map` (#23809) - Lower extend\_constant to the streaming engine (#23824) - Lower pl.repeat to streaming engine (#23804) - Remove redundant clone (#23771) ##### ✨ Enhancements - Lower `rle_id` to a native streaming node (#23894) - Pass `endpoint_url` loaded from `CredentialProviderAWS` to `scan/write_delta` (#23812) - Dispatch `scan_iceberg` to native by default (#23912) - Lower `unique_counts` and `value_counts` to streaming engine (#23890) - Support initializing from `__arrow_c_schema__` protocol in `pl.Schema` (#23879) - Better handle broken local package environment in `show_versions` (#23885) - Implement `dt.days_in_month` function (#23119) - Making `Expr.rolling_*_by` methods available to `pl.Series` (#23742) - Fix errors on native `scan_iceberg` (#23811) - Reinterpret binary data to fixed size numerical array (#22840) - Make `rolling_map` serializable (#23848) - Ensure `CachingCredentialProvider` returns copied credentials dict (#23817) - Change typing for `.remote()` from `LazyFrameExt` to `LazyFrameRemote` (#23825) - Implement `repeat_by` for `Array` and `Null` (#23794) - Add DeprecationWarning on passing physical ordering to Categorical (#23779) - Pre-filtered decode and row group skipping with Iceberg / Delta / scans with cast options (#23792) - Update `BytecodeParser` opcode awareness for upcoming Python 3.14 (#23782) ##### 🐞 Bug fixes - Categorical namespace functions fail on `Enum` columns (#23925) - Properly set sumwise complete on filter for missing columns (#23877) - Restore Arrow-FFI-based Python\<->Rust conversion in pyo3-polars (#23881) - Group By with filters (#23917) - Fix `read_csv` ignoring Decimal schema for header-only data (#23886) - Ensure `collect()` native Iceberg always scans latest when no `snapshot_id` is given (#23907) - Writing List(Array) columns to JSON without panic (#23875) - Fill Iceberg missing fields with partition values if present in metadata (#23900) - Create file for streaming sink even if unspawned (#23672) - Update cloud testing environment (#23908) - Parquet filtering on multiple RGs with literal predicate (#23903) - Incorrect datatype passed to libc::write (#23904) - Properly feature gate TZ\_AWARE\_RE usage (#23888) - Improve identification of "non group-key" aggregates in SQL `GROUP BY` queries (#23191) - Spawning tokio task outside reactor (#23884) - Correctly raise DuplicateError on asof\_join with suffix="" (#23864) - Fix errors on native `scan_iceberg` (#23811) - Fix index out of bounds panic filtering parquet (#23850) - Fix error on empty range requests (#23844) - Fix handling of hive partitioning `hive_start_idx` parameter (#23843) - Allow encoding of `pl.Enum` with smaller physicals (#23829) - Filter sorted flag from physical in CategoricalChunked (#23827) - Remove accidental todo! in repeat node (#23822) - Make `meta.pop` operate on `Expr` only (#23808) - Stack overflow in `DslPlan` serde (#23801) - Clear credentials cached in Python when rebuilding object store (#23756) - Datetime selectors with mixed timezone info (#23774) - Support i128 in asof join (#23770) - Remove sleep for credential refresh (#23768) ##### 📖 Documentation - Improve StackOverflow links in contributing guide (#23895) - Fix `pyo3` documentation page link (#23839) - Document the pureness requirements of udfs (#23787) - Correct the `name.*` methods on their removal of aliases (#23773) ##### 📦 Build system - Workaround for pyiceberg `make requirements` on Python 3.13 (#23810) - Add pyiceberg to dev dependencies (#23791) ##### 🛠️ Other improvements - Ensure `clippy` and `rustfmt` run in CI when changing `pyo3-polars` (#23930) - Fix pyo3-polars proc-macro re-exports (#23918) - Rewrite `evaluate_on_groups` for `.gather` / `.get` (#23700) - Move Python C API to `python-polars` (#23876) - Improve/fix internal `LRUCache` implementation and move into "\_utils" module (#23813) - Relax constraint on maxi _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.32.1]_