Sourced from polars-lts-cpu's releases.
Python Polars 1.21.0
🚀 Performance improvements
- Use BitmapBuilder in yet more places (#20868)
- Make an owned version of append (#20800)
- Use BitmapBuilder in a lot more places (#20776)
✨ Enhancements
- Stabilize methods/functions (#20850)
- Add
linear_space
(#20678)- Improve string → temporal parsing in
read_excel
andread_ods
(#20845)- Implement df.unique() on new-streaming engine (#20875)
- Experimental credential provider support for Delta read/scan/write (#20842)
- Allow column expressions in DataFrame
unnest
(#20846)- Auto-initialize Python credential providers in more cases (#20843)
- Add unique operations for Decimal dtype (#20855)
- Add NDJson sink for the new streaming engine (#20805)
- Support nested keys in window functions (#20837)
- Add CSV sink for the new streaming engine (#20804)
- Periodically check python signals ('CTRL-C' handling) (#20826)
- Experimental unity catalog client (#20798)
- Support cumulative aggregations for
Decimal
dtype (#20802)- Account for SurrealDB Python API updates (handle both
SurrealDB
andAsyncSurrealDB
classes) inread_database
(#20799)- Drop
nest-asyncio
in favor of custom logic (#20793)- Improve window function caching strategy (#20791)
- Support
lakefs://
URI for delta scanner (#20757)- Additional support for loading
numpy.float16
values (as Float32) (#20769)🐞 Bug fixes
- Warn if asof keys not sorted (#20887)
- Ensure explicit values given to
column_widths
override autofit inwrite_excel
(#20893)- Avoid name collisions and panicking in object conversion (#20890)
- Incorrect scale used in
log
andexp
for Decimal type (#20888)- Don't deep clone manuallydrop in GroupsPosition (#20886)
- Fix DuplicateError when selecting columns after
join_where
or cross join + filter (#20865)- Incorrect
Decimal
value forfill_null(strategy="one")
(#20844)- Fix one edge case (out of many) of int128 literals not working (#20830)
- Add height check to frame-level row indexing when key is int (#20778)
- Remove
assert
that panics ongroup_by
followed byhead(n)
, wheren
is larger then the frame height (#20819)- Selectors should raise on
+
between themselves (#20825)- Fix panic
InvalidHeaderValue
scanning from S3 on Windows (#20820)- Fix
clip
forDecimal
returning wrong values (#20814)- Incorrect height from slicing after projecting only the file path column (#20817)
- Shift mask when skipping Bitpacked values in Parquet (#20810)
- Error instead of truncate if length mismatch for several
str
functions (#20781)- Support cumulative aggregations for
Decimal
dtype (#20802)- Allow
is_in
values to be given as customCollection
(#20801)- Propagate null instead of panicking in
pl.repeat_by()
(#20787)
... (truncated)
1993d59
ci: Disable 'catalog' in build (#20897)d6f975c
Python Polars 1.21.0 (#20895)7bf42dd
feat(python): Stabilize methods/functions (#20850)332bd7d
chore: Implement negative slice for new streaming IPC (#20866)8b5b05a
fix: Warn if asof keys not sorted (#20887)884feeb
fix(python): Ensure explicit values given to column_widths
override autofi...c465164
feat: Add linear_space
(#20678)e98e09b
refactor(rust): Remove last instances of itoa (#20881)22c7879
refactor(rust): Reduce bloat in static_array_collect by using
BitmapBuilders ...45b8e8b
refactor(rust): Use defunctionalization in polars-core scalar.rs in
order to ...