Polars py-1.42.1 - Parquet Metadata And Panic Fixes


Python Polars py-1.42.1 was published on June 30, 2026, as a patch release for Polars data pipelines. The most important operator visible change is a set of panic and correctness fixes around Parquet scans, grouped aggregations, projection pushdown, datetime extraction, and replace expressions. This release is not marked as a prerelease.

The full release notes and downloads are on the GitHub release page.

The release adds a sampled resolve mode for multi file Parquet metadata. For teams scanning object store backed datasets, that is the kind of planning change worth testing against wide partitions, mixed schema history, and any job that currently spends visible time before the first batch is produced.

Path expansion also changes. The notes say Polars will not block on path expansion. That matters for jobs that scan many files, because file discovery can sit on the critical path before predicate pushdown and projection planning have any useful work to do.

The safer part is more direct. scan_parquet had a panic when filtering a fixed size binary column. py-1.42.1 fixes that case. The same group of storage adjacent fixes includes expiry time loading for AWS DeferredRefreshableCredentials and a PyIceberg HDFS prefix filter fix for keys that contain dots. None of that is a schema migration, but it is rollout relevant if production reads mix Parquet, Iceberg, HDFS style paths, and temporary AWS credentials.

Several fixes land in expression and aggregation paths that data engineers tend to find through scheduled batch jobs rather than unit tests. The release fixes an incorrect sorted fast path that returned nan for grouped max. That is a correctness issue, not just a crash fix, because the query can finish and still produce the wrong aggregate.

Projection pushdown also gets a specific panic fix for select(len()) after groupby. That is a narrow pattern, but it sits in a common class of lazy query plans where the optimizer rewrites the work before execution. A panic there can turn a harmless row count check into a failed pipeline stage.

There are more data type fixes in the same patch. Decimal dynamic float casts are corrected. Temporal extraction from datetime columns with nulls avoids a panic. replace no longer panics when old or new contain Expr values or object dtype values. These are not broad feature additions, but they reduce the number of edge cases that require local guards around otherwise normal Polars expressions.

The API change to notice is the deprecation of the strict parameter in pl.concat. New code should use how='horizontal_extend' for that path. Existing code is not described as broken by this release, but a deprecation is usually a good reason to remove the parameter while touching concat logic.

The rest of the notes include mostly project maintenance. Resource warning leaks in database and Iceberg tests were closed. mypy moved to the new 2.x release. pyrefly checks now run as part of make pre-commit. The project also disallows tokio::spawn through clippy. These changes matter most to contributors and packagers, not to most pipeline users.

Before rollout, read the GitHub release page against your own query mix. Pay extra attention to Parquet scans, grouped aggregation checks, and any concat call that still passes strict.