github pola-rs/polars py-0.20.23
Python Polars 0.20.23

latest releases: py-1.13.1, py-1.13.0, rs-0.44.2...
6 months ago

🏆 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

Don't miss a new polars release

NewReleases is sending notifications on new releases.