1.33.1
Python Polars 1.33.1
Added 5
- Support S3 virtual-hosted–style URI
- Add PyCapsule `__arrow_c_schema__` interface to `pl.Schema`
- Support Partitioning sinks in cloud
- User-friendly error message on empty path expansion
- Add unstable `pre_execution_query` parameter to `read_database_uri`
Changed 5
- Use specialized decoding for all predicates for Parquet dictionary encoding
- Allocate only for read items when reading Parquet with predicate
- Don't aggregate groups for strict cast if original len
- Remove explicit file create for local async writes
- Enable all integer dtypes for `by` parameter in `join_asof`
Fixed 10
- Correct `sink_ipc` overload for compression
- Fix Group-By + filter aggregation performs subsequent operations on all data instead of only filtered data
- Wrap deprecated top-level imports in TYPE_CHECKING
- Fix incorrect output ordering for row-separable exprs
- Fix `Series.__arrow_c_stream__` for Decimal and other logical types
- Match output type to engine for `Struct` arithmetic
- Make mmap use MAP_PRIVATE rather than MAP_SHARED
- Fix cloud iceberg scan DATASET_PROVIDER_VTABLE error
- Don't throw away type information for NumPy numeric values when using lit()
- Fix incorrect logic in negative streaming slice
🚀 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 topl.Schema(#24365) - Support Partitioning sinks in cloud (#24399)
- User-friendly error message on empty path expansion (#24337)
- Add unstable
pre_execution_queryparameter toread_database_uri(#23634) - Add Polars security policy (#24314)
🐞 Bug fixes
- Correct
sink_ipcoverload for compression (#24398) - Enable all integer dtypes for
byparameter injoin_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
Structarithmetic (#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_uriwith ADBC works as expected with DuckDB URIs (#24097) - Do not error on non-list
Sequenceforcolumnsparameter inread_excel(#23967)
📖 Documentation
- Document newly added
is_pureparameter forregister_io_source(#24311) - Create a module docstring for the public
polarsmodule (#24332) - Update to Polars Cloud user guide (#24187)
- Update distributed page (#24323)
- Add a note and example about exporting unformatted
Excelsheet 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
InteractiveQuerytoDirectQuery(#24287) - Mark some tests as slow (#24327)
- Mark more tests as ready for cloud (#24315)
- Add hint to update
PYPOLARS_VERSIONon 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