Python Polars 0.19.15
⚠️ Deprecations
- Rename
str.json_extract
tostr.json_decode
(#12586)
🚀 Performance improvements
- apply left side predicate pushdown also to right side on semi join (#12565)
- ensure streaming parquet download remains concurrent
~7x
(#12552)
✨ Enhancements
- warn if
by
column is not sorted in rolling aggregations (as opposed to raising), add warn_if_unsorted argument (#12398) - struct -> json encoding expression (#12583)
- Implement support for multi-character comments in
read_csv
(#12519) - Implement
LazyFrame.sink_ndjson
(#10786) - use JEMALLOC on all unix architectures (#12568)
- improve concurrency parameters (#12567)
- In explain(), rename PIPELINE to STREAMING so it's clearer what it means (#12547)
🐞 Bug fixes
- error when invalid list to array is given (#12584)
- parquet: do not extend existing nested that is already complete (#12569)
- accidental panic if predicate selects no files (#12575)
- fix lazy parquet slice with nested columns (#12558)
- ensure stats-evalutor exists (#12566)
- list schema of list
eval
(#12563) - ensure concurrency budget never locks (#12555)
- Fix lazy schema for
group_by_dynamic
androlling
(#12551) - address overflow on vec capacity calculation for
int_ranges
with negative step (#12548)
🛠️ Other improvements
- convert all recursive parquet deserialize to iterative (#12560)
- Minor cleanup in Expr class (#12549)
Thank you to all our contributors for making this release possible!
@MarcoGorelli, @Qqwy, @alexander-beedie, @dmitrybugakov, @fernandocast, @gab23r, @itamarst, @nameexhaustion, @ritchie46, @stinodego and @uchiiii