py-1.33.1
pola-rs/polarspy-1.33.1Sep 9, 2025by github-actions[bot]
AI Summary
Python Polars 1.33.1 improves cloud IO capabilities, adds PyCapsule interfaces for better interoperability, and fixes various group-by and join issues.
Key Highlights
- PyCapsule `__arrow_c_schema__` interface for Schema
- S3 virtual-hosted style URI support
- Performance improvements for Parquet dictionary encoding
- User-friendly error messages on empty path expansion
New Features
- S3 virtual-hosted style URI support
- unstable `pre_execution_query` parameter
- PyCapsule `__arrow_c_schema__` interface
Full Release Notes
## 🚀 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