Polars: py-0.20.23 Release

Release date:
April 28, 2024
Previous version:
py-0.20.22 (released April 21, 2024)
Magnitude:
4,913 Diff Delta
Contributors:
15 total committers
Data confidence:
Commits:

55 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored April 26, 2024
Authored April 26, 2024

Top Contributors in py-0.20.23

ritchie46
stinodego
alexander-beedie
itamarst
reswqa
nameexhaustion
MarcoGorelli
NexVeridian
orlp
Julian-J-S

Directory Browser for py-0.20.23

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

πŸ† Highlights

  • Add a low-friction sql method for DataFrame and LazyFrame (#15783)

πŸš€ Performance improvements

  • Don't rechunk in parallel collection (#15907)
  • Improve non-trivial list aggregations (#15888)
  • Ensure we hit specialized gather for binary/strings (#15886)
  • Limit the cache size for to_datetime (#15826)
  • skip initial null items and don't recompute slope in interpolate (#15819)

✨ Enhancements

  • don't require pyarrow for converting pandas to Polars if all columns have simple numpy-backed datatypes (#15933)
  • Add option to disable globbing in csv (#15930)
  • Add option to disable globbing in parquet (#15928)
  • Expressify dt.round (#15861)
  • Improve error messages in context stack (#15881)
  • Add dynamic literals to ensure schema correctness (#15832)
  • add timestamp time travel in delta scan/read (#15813)

🐞 Bug fixes

  • Set default limit for String column display to 30 and fix edge cases (#15934)
  • Change recognition of numba ufunc (#15916)
  • series.search_sorted could support more types of input (#15940)
  • Remove ffspec from parquet reader (#15927)
  • avoid WRITE+EXEC for CPUID check (#15912)
  • fix inconsistent decimal formatting (#15457)
  • Preserve NULLs for is_not_nan (#15889)
  • double projection check should only take the upstream projections into account (#15901)
  • Ensure we don't create invalid frames when combining unit lit + … (#15903)
  • Clear cached rename schema (#15902)
  • Fix OOB in struct lit/agg aggregation (#15891)
  • Refine interaction of "schema_overrides" with read_excel when using "calamine" engine (#15827)
  • Don't modify user-supplied storage_options dict (take a shallow-copy) (#15859)
  • create (q)cut labels in fixed order (#15843)
  • Tag shrink_dtype as non-streaming (#15828)

πŸ“– Documentation

  • improve graphviz install documentation/error message (#15791)
  • Extend docstring examples for asof_join (#15810)

πŸ“¦ Build system

  • Don't import jemalloc (#15942)
  • Use default allocator for lts-cpu (#15941)
  • replace all macos-latest referrals with macos-13 (#15926)
  • pin mimalloc and macos-13 (#15925)
  • use jemalloc in lts-cpu (#15913)
  • Update Cargo.lock (#15865)
  • Bump ruff version and improve make clean on the Python side (#15858)
  • Exclude rust-toolchain.toml from wheels (#15840)

πŸ› οΈ Other improvements

  • Replace copy/paste import handling with import_optional utility function (#15906)
  • Reorganize from_iter and dispatch to collect_ca when possible (#15904)
  • More PyO3 0.21 bound APIs (#15872)
  • Improve type-coercion (#15879)
  • Move type coercion to IR conversion phase (#15868)
  • Fix Python test coverage upload (#15853)
  • More upgrades to PyO3 0.21 Bound<> APIs (#15790)
  • Use uv for installing Python dependencies in CI (#15848)
  • Update benchmark tests (#15825)

Thank you to all our contributors for making this release possible! @JulianCologne, @MarcoGorelli, @NedJWestern, @NexVeridian, @alexander-beedie, @deanm0000, @dependabot, @dependabot[bot], @ion-elgreco, @itamarst, @jr200, @nameexhaustion, @orlp, @reswqa, @ritchie46 and @stinodego