Changes
🚀 Performance improvements
- perf: remove redundant work in eager when/then, schema resolution, selectors, and module lookups (#3797)
✨ Enhancements
- feat: add
str.strip_chars_{start,end}(#3843) - feat: Add
maintain_orderargument to{Expr, Series}.list.unique(#3697) - feat(typing): Introduce
PluginNameNewType so plugin backends can type check (#3794) - feat(ibis): Add support for
Expr.list.medianfor ibis backend (#3791)
🐞 Bug fixes
- fix: follow left-hand-index alignment rule for pandas-like
concat(#3866) - fix: null propagation for str boolean methods (#3865)
- fix: consistently place null's in
with_row_index(order_by=...)(#3863) - fix: honor schema column selection/order in pandas-like from_dicts (#3856)
- fix: use exact quantile for median on the pyarrow backend (#3855)
- fix: order
Categoricalcolumns by value in thepyarrowbackend (#3862) - fix:
is_inwas not preserving nulls where possible (#3859) - fix: preserve nulls in pandas-like Expr.dt.ordinal_day (#3805)
- fix: resolve failing cross-references in documentation (#3790)
📖 Documentation
- docs: reorganise contributing.md and add useful make commands (#3836)
- fix: resolve failing cross-references in documentation (#3790)
- docs: Add Intella to "resources" (#3788)
🛠️ Other improvements
- ci: pin pandas in scikit-lego job to get ci green (#3860)
- chore: Bump pyrefly 1.2, remove some unnecessary
pyrefly: ignores (#3848) - chore: fix pandas nightly (#3849)
- chore: Remove pins in
pyproject.toml, as dependencies are pinned inuv.lockanyway (#3847) - chore: prek autoupdate (#3828)
- chore: add trailing-whitespace precommit (#3826)
- chore: Update uv lock, pre-commit hooks and fix linting issues (#3813)
- refactor: Dispatch IO functions via
*Namespacemethods (#3793) - ci: fix lightgbm downstream test (#3801)
- chore: refactor compliant implementations to use
expression_argsinstead of**expressifiable_args(#3766) - chore: Small performance and robustness cleanups (#3798)
- chore: prek autoupdate (#3858)
- chore: prek autoupdate (#3846)
- ci: consolidate action updates in renovate and add zizmor pre-commit hook (#3835)
- test: split
cat.get_categoriestests for expr and series (#3814)
Thank you to all our contributors for making this release possible!
@aleks-drozy, @CangyuanLi, @EdAbati, @FBruzzesi, @ghostiee-11, @MarcoGorelli, @maxzw, @Shaan-alpha, @vidigoat and @github-actions[bot]