py-1.41.1

Infisical/infisicalpy-1.41.1May 27, 2026by github-actions[bot]

AI Summary

This release introduces the ability to use deeper expressions and fixes several memory usage regressions and performance issues, particularly around sorting and rolling operations.

Key Highlights

  • Allow deeper expressions
  • Fix memory usage regression affecting TPCH Q22
  • Add `POLARS_ALLOW_NESTED_CSPE` env var

New Features

  • Allow deeper expressions
  • Add `POLARS_ALLOW_NESTED_CSPE` env var

Full Release Notes

## 🚀 Performance improvements

- Adaptive size dispatch to hashset or radix sort + capacity-aware reset in `agg_n_unique` (#27719)

## ✨ Enhancements

- Allow deeper expressions (#27768)

## 🐞 Bug fixes

- Raise length mismatch in multiple `sort_by` in `group_by` (#27772)
- Respect min\_samples for rolling\_by ops with nulls (#27706)
- Fix memory usage regression affecting TPCH Q22 (#27758)
- Add `POLARS_ALLOW_NESTED_CSPE` env var and make nested CSPE opt-in (#27765)
- Post-apply residual pyarrow predicates (#27764)
- Fix loss of precision for smaller floating types(#27662) (#27732)
- Filter at scan dropped in CSPE filter pushdown (#27763)
- Fix portstate assertion error on is\_in (#27757)
- Fix incorrect when/then after forward fill / reverse in groupby (#27745)
- Accept empty Thrift list encoded as bare 0x00 byte in parquet metadata (#27754)
- Stabilize object store `credentialprovider` cache key (#27712)
- Add to `merge_sorted` docs that the input must be nulls first (#27743)

## 📖 Documentation

- Docs fixes (#27766)
- Sync from Polars Cloud (#27751)
- Add to `merge_sorted` docs that the input must be nulls first (#27743)

## 🛠️ Other improvements

- Attribute annotations for `CatalogCredentialProvider` (#27739)
- Solve `type: ignore` in \_AioDataFrameResult (#27311)
- Remove dead code in `_write_utils.py` (#27721)
- Remove unnecessary ``not isinstance(v, DataType)`` check (#27723)

Thank you to all our contributors for making this release possible!
@EndPositive, @JakubValtar, @MarcoGorelli, @NicoOhR, @azimafroozeh, @carnarez, @dsprenkels, @jorenham, @kdn36, @nameexhaustion, @orlp and @ritchie46