# Polars 1.30.0-beta.1 — Python Polars 1.30.0-beta.1 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2025-05-16 - Version: 1.30.0-beta.1 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.30.0-beta.1 - Permalink: https://whatsnew.fyi/product/polars/releases/1.30.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'. --- - **changed** — Increase default cross-file parallelism limit for new-streaming multiscan - **changed** — Add elementwise execution mode for list.eval - **changed** — Support optimised init from non-dict Mapping objects in from_records and frame/series constructors - **added** — Add streaming cross-join node - **changed** — Switch off maintain_order in group-by followed by sort - **added** — Support binaryoffset in search sorted - **added** — Add nulls_equal flag to list/arr.contains - **added** — Implement LazyFrame.match_to_schema - **changed** — Improve time-string parsing and inference generally and via the SQL interface - **changed** — Allow for .over to be called without partition_by - **added** — Support AnyValue translation from PyMapping values - **added** — Support inference of Int128 dtype from databases that support it - **added** — Add options to write Parquet field metadata - **added** — Add cast_options parameter to control type casting in scan_parquet - **changed** — Allow casting List to Binary - **added** — Allow setting of regex size limit using POLARS_REGEX_SIZE_LIMIT - **changed** — Support use of literal values as "other" when evaluating Series.zip_with - **added** — Allow to read and write custom file-level parquet metadata - **added** — Support PEP702 @deprecated decorator behaviour - **added** — Support grouping by pl.Array ##### 🚀 Performance improvements - Increase default cross-file parallelism limit for new-streaming multiscan (#22700) - Add elementwise execution mode for `list.eval` (#22715) - Support optimised init from non-dict `Mapping` objects in `from_records` and frame/series constructors (#22638) - Add streaming cross-join node (#22581) - Switch off `maintain_order` in group-by followed by sort (#22492) ##### ✨ Enhancements - Support binaryoffset in search sorted (#22786) - Add `nulls_equal` flag to `list/arr.contains` (#22773) - Implement `LazyFrame.match_to_schema` (#22726) - Improved time-string parsing and inference (generally, and via the SQL interface) (#22606) - Allow for `.over` to be called without `partition_by` (#22712) - Support `AnyValue` translation from `PyMapping` values (#22722) - Support optimised init from non-dict `Mapping` objects in `from_records` and frame/series constructors (#22638) - Support inference of `Int128` dtype from databases that support it (#22682) - Add options to write Parquet field metadata (#22652) - Add `cast_options` parameter to control type casting in `scan_parquet` (#22617) - Allow casting List\ to Binary (#22611) - Allow setting of regex size limit using `POLARS_REGEX_SIZE_LIMIT` (#22651) - Support use of literal values as "other" when evaluating `Series.zip_with` (#22632) - Allow to read and write custom file-level parquet metadata (#21806) - Support PEP702 `@deprecated` decorator behaviour (#22594) - Support grouping by `pl.Array` (#22575) - Preserve exception type and traceback for errors raised from Python (#22561) - Use fixed-width font in streaming phys plan graph (#22540) ##### 🐞 Bug fixes - Respect BinaryOffset metadata (#22785) - Correct the output order of `PartitionByKey` and `PartitionParted` (#22778) - Fallback to non-strict casting for deprecated casts (#22760) - Clippy on new stable version (#22771) - Handle sliced out remainder for bitmaps (#22759) - Don't merge `Enum` categories on append (#22765) - Fix unnest() not working on empty struct columns (#22391) - Fix the default value type in `Schema` init (#22589) - Correct name in `unnest` error message (#22740) - Provide "schema" to `DataFrame`, even if empty JSON (#22739) - Properly account for nulls in the `is_not_nan` check made in `drop_nans` (#22707) - Incorrect result from SQL `count(*)` with `partition by` (#22728) - Fix deadlock joining scanned tables with low thread count (#22672) - Don't allow deserializing incompatible DSL (#22644) - Incorrect null dtype from binary ops in empty group\_by (#22721) - Don't mark `str.replace_many` with Mapping as deprecated (#22697) - Gzip has maximum compression of 9, not 10 (#22685) - Fix predicate pushdown of fallible expressions (#22669) - Fix `index out of bounds` panic when scanning hugging face (#22661) - Panic on `group_by` with literal and empty rows (#22621) - Return input instead of panicking if empty subset in `drop_nulls()` and `drop_nans()` (#22469) - Bump argminmax to 0.6.3 (#22649) - DSL version deserialization endianness (#22642) - Allow Expr.round() to be called on integer dtypes (#22622) - Fix panic when filtering based on row index column in parquet (#22616) - WASM and PyOdide compile (#22613) - Resolve `get()` SchemaMismatch panic (#22350) - Panic in group\_by\_dynamic on single-row df with group\_by (#22597) - Add `new_streaming` feature to `polars` crate (#22601) - Consistently use Unix epoch as origin for ``dt.truncate`` (except weekly buckets which start on Mondays) (#22592) - Fix interpolate on dtype Decimal (#22541) - CSV count rows skipped last line if file did not end with newline (#22577) - Make nested strict casting actually strict (#22497) - Make `replace` and `replace_strict` mapping use list literals (#22566) - Allow pivot on `Time` column (#22550) - Fix error when providing CSV schema with extra columns (#22544) - Panic on bitwise op between Series and Expr (#22527) - Multi-selector regex expansion (#22542) ##### 📖 Documentation - _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.30.0-beta.1]_