py-1.40.1

Klavis-AI/klavispy-1.40.1Apr 22, 2026by github-actions[bot]

AI Summary

A performance and bug fix release focusing on grouping operations, data type handling, and reducing overhead in array operations.

Key Highlights

  • Performance improvement: Skip validity mask processing in array operations
  • Enhancement: Add maintain_order parameter to merge_sorted
  • Bug fix: Honor having predicate in GroupBy
  • Bug fix: Fix reduce_balanced for certain input lengths

New Features

  • Added maintain_order parameter to merge_sorted

Full Release Notes

## 🚀 Performance improvements

- Skip validity mask processing in \_\_array\_ufunc\_\_ when no inputs have nulls (#27358)

## ✨ Enhancements

- Cargo deny (#27363)
- Add `maintain_order` parameter to `merge_sorted` (#27263)

## 🐞 Bug fixes

- Honor `having` predicate in `GroupBy` iter (#27370)
- Use the physical dtype for `NumUnorderedImplodeReducer` arrow `ListArray` (#27375)
- Address bug in `reduce_balanced` for certain input length lists affecting `pl.concat` (#27352)
- Ensure `list.sample()` allows `fraction` > 1 when `with_replacement=True` (#27350)
- Ensure `append()` errors when `upcast=False` (#27346)
- Always rechunk sorts, prune sorts even in eager execution (#27356)
- Fix typing for `DataFrame.__init__` and `Series.__init__` so they don't require all optional dependencies to be installed (#27348)

## 📖 Documentation

- Split out openlineage docs into guide and configuration (#27371)
- Add explanation on the observatory sqlite db file (#27354)

## 🛠️ Other improvements

- Disable mypy type checking for `pyarrow` calls (#27377)
- Disable debug symbols in macos coverage tests (#27361)
- Cargo deny (#27363)

Thank you to all our contributors for making this release possible!
@EndPositive, @Kevin-Patyk, @MarcoGorelli, @carnarez, @dsprenkels, @gab23r, @jonathanchang31, @kdn36, @mzjp2 and @ritchie46