py-1.19.0
pola-rs/polarspy-1.19.0Jan 3, 2025by github-actions[bot]
AI Summary
This release focuses on performance optimizations within the new-streaming engine and adds `Int128` IO support alongside improved `join_where` capabilities.
Key Highlights
- Add `Int128` IO support for csv & ipc
- Support arbitrary expressions in 'join_where'
- Add `index_of()` function to Series and Expr
- Performance improvements in new-streaming engine
- Allow use of Python types in cs.by_dtype and col
New Features
- Add `Int128` IO support for csv & ipc
- Support arbitrary expressions in 'join_where'
- Allow use of Python types in `cs.by_dtype` and `col`
- Add `index_of()` function to Series and Expr
- Add 'allow_exact_matches' join_asof
- Add `cat.starts_with` and `cat.ends_with`
- Add `str.normalize()` function
Full Release Notes
## 🚀 Performance improvements - Collapse expanded filters in eager (#20493) - Remove predicate from `IR::DataFrame` (#20492) - Use different binview dedup strategy depending on chunks ratio (#20451) - Generalize the `arg_sort` fast path onto `Column` (#20437) - Dedup binviews up front (#20449) - Re-enable common subplan elim for new-streaming engine (#20443) - Don't collect all LHS arrays in gather (#20441) - Remove prepare\_series for gather kernels (#20439) - Don't always take all data buffers when gathering views (#20435) ## ✨ Enhancements - Add `Int128` IO support for csv \& ipc (#20535) - Support arbitrary expressions in 'join\_where' (#20525) - Allow use of Python types in `cs.by_dtype` and `col` (#20491) - Add an "include\_file\_paths" parameter to `read_excel` and `read_ods` (#20476) - Allow more join lossless casting (#20474) - Accept more generic `Iterable[bool]` in Series.filter (#20431) - Allow loading data from multiple Excel/ODS workbooks and worksheets (#20465) ## 🐞 Bug fixes - Output index type instead of u32 for `sum_horizontal` with boolean inputs (#20531) - Fix more global categorical issues (#20547) - Update eager join doctest on multiple columns (#20542) - Revert categorical unique code (#20540) - Add `unique` fast path for empty categoricals (#20536) - Fix various `Int128` operations (#20515) - Fix global cat unique (#20524) - Fix union (#20523) - Fix rolling aggregations for various integer types (#20512) - Ensure `ignore_nulls` is respected in horizontal sum/mean (#20469) - Fix incorrectly added sorted flag after append for lexically ordered categorical series (#20414) - More `Int128` testing and related fixes (#20494) - Validate column names in `unique()` for empty DataFrames (#20411) - Implement `list.min` and `list.max` for `list[i128]` (#20488) - Decimal from physical in horizontal min/max and shift (#20487) - Don't remove sort if first/last strategy is set in unique (#20481) - Fix join literal behavior (#20477) - Validate asof join by args in IR resolving phase (#20473) - Fix `align_frames` with single row panicking (#20466) - Allow multiple column sort for Decimal (#20452) - Fix mode panicking for String dtype (#20458) - Return correct schema for `sum_horizontal` with boolean dtype (#20459) - Fix return type for `add_business_days`, `millennium`, `century` and `combine` methods in `Series.dt` namespace (#20436) ## 📖 Documentation - Fix typo in `DataFrame.cast` (#20532) - Fix flaky doctests (#20516) - Add examples for bitwise expressions (#20503) - Clarify the join pre-condition of `join_asof` (#20509) - Fix `Expr.all` description of Kleene logic (#20409) ## 🛠️ Other improvements - Increase categorical test coverage (#20514) - Report wheel sizes (#20541) - Add tests for `floor/ceil` on integers (#20479) - Expose and rewrite 'can\_pre\_agg' (#20450) - Skip test on windows; kuzu import segfaults (#20463) - Add a `TypeCheckRule` to the optimizer (#20425) Thank you to all our contributors for making this release possible! @Biswas-N, @IndexSeek, @Prathamesh-Ghatole, @Terrigible, @alexander-beedie, @brifitz, @coastalwhite, @dependabot, @dependabot[bot], @jqnatividad, @lukemanley, @mcrumiller, @orlp, @ritchie46 and @siddharth-vi