Change8

py-1.32.1

📦 polarsView on GitHub →
5 features🐛 28 fixes1 deprecations🔧 29 symbols

Summary

This release focuses heavily on performance improvements by lowering more operations to the streaming engine and optimizing internal parsing. Numerous bug fixes address issues across Iceberg/Delta scans, data type handling, and aggregation queries.

✨ New Features

  • Implement `dt.days_in_month` function.
  • Making `Expr.rolling_*_by` methods available to `pl.Series`.
  • Reinterpret binary data to fixed size numerical array.
  • Implement `repeat_by` for `Array` and `Null`.
  • Support initializing from `__arrow_c_schema__` protocol in `pl.Schema`.

🐛 Bug Fixes

  • Categorical namespace functions now work correctly on `Enum` columns.
  • Properly set sumwise complete on filter for missing columns.
  • Restore Arrow-FFI-based Python<->Rust conversion in pyo3-polars.
  • Fix Group By with filters issues.
  • Fix `read_csv` ignoring Decimal schema for header-only data.
  • Ensure `collect()` native Iceberg always scans latest when no `snapshot_id` is given.
  • Fix writing List(Array) columns to JSON without panic.
  • Fill Iceberg missing fields with partition values if present in metadata.
  • Create file for streaming sink even if unspawned.
  • Fix Parquet filtering on multiple RGs with literal predicate.
  • Fix incorrect datatype passed to libc::write.
  • Properly feature gate TZ_AWARE_RE usage.
  • Improve identification of "non group-key" aggregates in SQL `GROUP BY` queries.
  • Fix spawning tokio task outside reactor.
  • Correctly raise DuplicateError on asof_join with suffix="".
  • Fix errors on native `scan_iceberg`.
  • Fix index out of bounds panic filtering parquet.
  • Fix error on empty range requests.
  • Fix handling of hive partitioning `hive_start_idx` parameter.
  • Allow encoding of `pl.Enum` with smaller physicals.
  • Filter sorted flag from physical in CategoricalChunked.
  • Remove accidental todo! in repeat node.
  • Make `meta.pop` operate on `Expr` only.
  • Fix Stack overflow in `DslPlan` serde.
  • Clear credentials cached in Python when rebuilding object store.
  • Fix Datetime selectors with mixed timezone info.
  • Support i128 in asof join.
  • Remove sleep for credential refresh.

🔧 Affected Symbols

BytecodeParserwarn_on_inefficient_maprle_idCredentialProviderAWSscan/write_deltascan_icebergunique_countsvalue_countspl.Schema__arrow_c_schema__show_versionsdt.days_in_monthExpr.rolling_*_bypl.Seriesrolling_mapCachingCredentialProviderLazyFrameExt.remote()LazyFrameRemoterepeat_byArrayNullCategoricalread_csvcollect()List(Array)meta.popDslPlanasof_joinpl.Enum

⚡ Deprecations

  • Passing physical ordering to Categorical now issues a DeprecationWarning.