Polars: py-1.33.1 Release

Release date:
September 9, 2025
Previous version:
py-1.33.0 (released September 1, 2025)
Magnitude:
2,680 Diff Delta
Contributors:
9 total committers
Data confidence:
Commits:

32 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored September 1, 2025
Authored September 2, 2025
Authored September 2, 2025
Authored September 3, 2025
Authored September 9, 2025
Authored September 8, 2025

Top Contributors in py-1.33.1

r-brink
nameexhaustion
orlp
mcrumiller
kdn36
coastalwhite
ritchie46
itamarst
alexander-beedie

Directory Browser for py-1.33.1

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

๐Ÿš€ Performance improvements

  • Use specialized decoding for all predicates for Parquet dictionary encoding (#24403)
  • Allocate only for read items when reading Parquet with predicate (#24401)
  • Don't aggregate groups for strict cast if original len (#24381)
  • Allocate only for read items when reading Parquet with predicate (#24324)

โœจ Enhancements

  • Support S3 virtual-hostedโ€“style URI (#24405)
  • Remove explicit file create for local async writes (#24358)
  • Add PyCapsule __arrow_c_schema__ interface to pl.Schema (#24365)
  • Support Partitioning sinks in cloud (#24399)
  • User-friendly error message on empty path expansion (#24337)
  • Add unstable pre_execution_query parameter to read_database_uri (#23634)
  • Add Polars security policy (#24314)

๐Ÿž Bug fixes

  • Correct sink_ipc overload for compression (#24398)
  • Enable all integer dtypes for by parameter in join_asof (#24384)
  • Fix Group-By + filter aggregation performs subsequent operations on all data instead of only filtered data (#24373)
  • Wrap deprecated top-level imports in TYPE_CHECKING (#24340)
  • Fix incorrect output ordering for row-separable exprs (#24354)
  • Fix Series.__arrow_c_stream__ for Decimal and other logical types (#24120)
  • Match output type to engine for Struct arithmetic (#23805)
  • Make mmap use MAP_PRIVATE rather than MAP_SHARED (#24343)
  • Fix cloud iceberg scan DATASET_PROVIDER_VTABLE error (#24338)
  • Don't throw away type information for NumPy numeric values when using lit() (#24229)
  • Incorrect logic in negative streaming slice (#24326)
  • Ensure read_database_uri with ADBC works as expected with DuckDB URIs (#24097)
  • Do not error on non-list Sequence for columns parameter in read_excel (#23967)

๐Ÿ“– Documentation

  • Document newly added is_pure parameter for register_io_source (#24311)
  • Create a module docstring for the public polars module (#24332)
  • Update to Polars Cloud user guide (#24187)
  • Update distributed page (#24323)
  • Add a note and example about exporting unformatted Excel sheet data (#24145)
  • Add detail about server-side cursor behaviour for SQLAlchemy in the "iter_batches" parameter of read_database (#24094)
  • Add Polars security policy (#24314)

๐Ÿ› ๏ธ Other improvements

  • Bump c-api (#24412)
  • Add a regression test for #7631 (#24363)
  • Update cloud test InteractiveQuery to DirectQuery (#24287)
  • Mark some tests as slow (#24327)
  • Mark more tests as ready for cloud (#24315)
  • Add hint to update PYPOLARS_VERSION on version assert test (#24313)

Thank you to all our contributors for making this release possible! @Kevin-Patyk, @VictorAtIfInsurance, @alexander-beedie, @coastalwhite, @dsprenkels, @itamarst, @kdn36, @kuril, @mcrumiller, @nameexhaustion, @nesb1, @orlp, @r-brink and @ritchie46