# Polars 1.34.0-beta.1 — Python Polars 1.34.0-beta.1 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2025-09-23 - Version: 1.34.0-beta.1 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.34.0-beta.1 - Permalink: https://whatsnew.fyi/product/polars/releases/1.34.0-beta.1 - Labels: Pre-release 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** — Add LazyFrame.sink_batches and LazyFrame.collect_batches - **added** — Add support to display lazy query plan in marimo notebooks without needing to install matplotlib or mermaid - **added** — Add unstable hidden_file_prefix parameter to scan_parquet - **added** — Add support for unsigned 128-bit integers - **added** — Add unstable pl.Config.set_default_credential_provider - **added** — Add opt-in unstable functionality to load interval types as Struct - **added** — Support reading parquet metadata from cloud storage - **added** — Support unique / n_unique / arg_unique for array columns - **changed** — Use fixed-scale Decimals - **changed** — Roundtrip BinaryOffset type through Parquet - **changed** — Deterministic import order for Python Polars package variants - **changed** — Skip files in scan_iceberg with filter based on metadata statistics - **changed** — Push row_index predicate for all scan types - **changed** — Perform integer in-filtering for Parquet inequality predicates - **changed** — Stop caching Parquet metadata after 8 files - **changed** — Native streaming .mode() expression - **fixed** — Add support for float inputs for duration types - **fixed** — Roundtrip empty string through hive partitioning - **fixed** — Fix potential OOB writes in unaligned IPC read - **fixed** — Fix regression error when scanning AWS presigned URL ##### 🏆 Highlights - Add `LazyFrame.{sink,collect}_batches` (#23980) - Deterministic import order for Python Polars package variants (#24531) ##### 🚀 Performance improvements - Skip files in `scan_iceberg` with filter based on metadata statistics (#24547) - Push row\_index predicate for all scan types (#24537) - Perform integer in-filtering for Parquet inequality predicates (#24525) - Stop caching Parquet metadata after 8 files (#24513) - Native streaming `.mode()` expression (#24459) ##### ✨ Enhancements - Add `LazyFrame.{sink,collect}_batches` (#23980) - Deterministic import order for Python Polars package variants (#24531) - Add support to display lazy query plan in marimo notebooks without needing to install matplotlib or mermaid (#24540) - Add unstable `hidden_file_prefix` parameter to `scan_parquet` (#24507) - Use fixed-scale Decimals (#24542) - Add support for unsigned 128-bit integers (#24346) - Add unstable `pl.Config.set_default_credential_provider` (#24434) - Roundtrip `BinaryOffset` type through Parquet (#24344) - Add opt-in unstable functionality to load interval types as `Struct` (#24320) - Support reading parquet metadata from cloud storage (#24443) - Add user guide section on AWS role assumption (#24421) - Support `unique` / `n_unique` / `arg_unique` for `array` columns (#24406) ##### 🐞 Bug fixes - Add support for float inputs for duration types (#24529) - Roundtrip empty string through hive partitioning (#24546) - Fix potential OOB writes in unaligned IPC read (#24550) - Fix regression error when scanning AWS presigned URL (#24530) - Make `PlPath::join` for cloud paths replace on absolute paths (#24514) - Correct dtype for cum\_agg in streaming engine (#24510) - Restore support for np.datetime64() in pl.lit() (#24527) - Ignore Iceberg list element ID if missing (#24479) - Fix panic on streaming full join with coalesce (#23409) - Fix `AggState` on `all_literal` in `BinaryExpr` (#24461) - Show IR sort options in `explain` (#24465) - Benchmark CI import (#24463) - Fix schema on `ApplyExpr` with single row `literal` in agg context (#24422) - Fix planner schema for dividing `pl.Float32` by int (#24432) - Fix panic scanning from AWS legacy global endpoint URL (#24450) - Fix `iterable_to_pydf(..., infer_schema_length=None)` to scan all data (#23405) - Do not propagate struct of nulls with null (#24420) - Be stricter with invalid NDJSON input when `ignore_errors=False` (#24404) - Implement `approx_n_unique` for temporal dtypes and Null (#24417) ##### 📖 Documentation - Rename `avg_birthday` -> `avg_age` in examples aggregation (#23726) - Update Polars Cloud user guide (#24366) - Fix typo in `set_expr_depth_warning` docstring (#24427) ##### 🛠️ Other improvements - More release scripting (#24582) - Again a minor fix for the setup script (#24580) - Minor fix in release script (#24579) - Correct release python beta version check (#24578) - Python dependency failure (#24576) - Always install yq (#24570) - Deterministic import order for Python Polars package variants (#24531) - Check Arrow FFI pointers with an assert (#24564) - Add a couple of missing type definitions in python (#24561) - Fix quickstart example in Polars Cloud user guide (#24554) - Add implementations for loading min/max statistics for Iceberg (#24496) - Update versions (#24508) - Add additional unit tests for `pl.concat` (#24487) - Refactor parametric tests for `as_struct` on aggstates (#24493) - Use `PlanCallback` in `name.map_*` (#24484) - Pin `xlsvwriter` to `3.2.5` or before (#24485) - Add dataclass to hold resolved iceberg scan data (#24418) - Fix iceberg test failure in CI (#24456) - Move CompressionUtils to polars-utils (#24430) - Update github template to dispatch to cloud client (#24416) Thank you to all our contributors for making this release possible! @Gusabary, @Kevin-Patyk, @Matt711, @alonsosilvaallende, @borchero, @c-peters, @camriddell, @coastalwhite, @dongchao-1, @dsprenkels, @itamarst, @jan-krueger, @joshuamarkovic, @juans _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.34.0-beta.1]_