Skip to content

Python Polars 0.20.26

Compare
Choose a tag to compare
@github-actions github-actions released this 14 May 15:25
ae4e71b

⚠️ Deprecations

  • Deprecate allow_infinities and null_probability args to parametric test strategies (#16183)

🚀 Performance improvements

  • Avoid needless copy when converting chunked Series to NumPy (#16178)
  • use zeroable_vec in ewm_mean_by (#16166)
  • Improve cost of chunk_idx compute (#16154)
  • Don't rechunk by default in concat (#16128)
  • Ensure rechunk is parallel (#16127)

✨ Enhancements

  • Clarify to_torch "features" and "label" parameter behaviour when return type is not "dataset" (#16218)
  • Native CSV file list reading (#16180)
  • Register memory mapped files and raise when written to (#16208)
  • Implement support for Struct types in parametric tests (#16197)
  • Enable Null datatype and null values by default in parametric testing (#16192)
  • Support Enum types in parametric testing (#16188)
  • Raise when encountering invalid supertype in functions during conversion (#16182)
  • Add SQL support for GROUP BY ALL syntax and fix several issues with aliased group keys (#16179)
  • Overhaul parametric test implementations and update Hypothesis to latest version (#16062)
  • Avoid an extra copy when converting Boolean Series to writable NumPy array (#16164)
  • Allow implicit string → temporal conversion in SQL comparisons (#15958)
  • Add run-length encoding to Parquet writer (#16125)
  • Support passing instantiated adbc/alchemy connection objects to write_database (#16099)
  • Add top-level nth(n) method, to go with existing first and last (#16112)

🐞 Bug fixes

  • Empty unique (#16214)
  • Fix empty drop nulls (#16213)
  • Fix get expression group-by state (#16189)
  • Fix rolling empty group OOB (#16186)
  • offset=-0i was being treated differently to offset=0i in rolling (#16184)
  • Fix panic on empty frame joins (#16181)
  • Fix streaming glob slice (#16174)
  • Fix CSV skip_rows_after_header for streaming (#16176)
  • Flush parquet at end of batches tick (#16073)
  • Check CSE name aliases for collisions. (#16149)
  • Don't override CSV reader encoding with lossy UTF-8 (#16151)
  • Respect dtype and strict in pl.Series's constructor for pyarrow arrays, numpy arrays, and pyarrow-backed pandas (#15962)
  • Ensure hex and bitstring literals work inside SQL IN clauses (#16101)

📖 Documentation

  • Add examples for multiple Series functions (#16172)
  • Add deprecated messages to cumfold and cumreduce (#16173)
  • StringNameSpace.replace_all docstring (#16169)
  • Explain how Polars floor division differs from Python (#16054)
  • Clarify arrow usage (#16152)
  • Add example to polars.Series.flags (#16123)

🛠️ Other improvements

  • Switch over some of the custom Python date/time conversions to native PyO3 conversions (#16203)
  • move describe to IR instead of DSL (#16191)
  • More PyO3 0.21 Bound<> APIs, and finally disable gil-refs backwards compat feature on pyo3 crate (#16143)
  • Move hypothesis tests into unit test module (#16185)
  • Remove unused code (#16175)
  • Update plugin example to PyO3 0.21 (#16157)
  • Return correct temporal type from Rust in to_numpy (#14353)
  • Create NumPy view for Datetime/Duration Series on the Rust side (#16148)
  • Don't override CSV reader encoding with lossy UTF-8 (#16151)
  • Continue converting to PyO3 0.21 Bound<> APIs (#16081)

Thank you to all our contributors for making this release possible!
@MarcoGorelli, @YichiZhang0613, @alexander-beedie, @bertiewooster, @coastalwhite, @dangotbanned, @itamarst, @janpipek, @jrycw, @luke396, @nameexhaustion, @pydanny, @ritchie46, @stinodego, @thalassemia and @tharunsuresh-code