Python Polars 1.8.0
✨ Enhancements
- Support arithmetic between Series with dtype list (#17823)
- Relaxed schema alignment for parquet file list read (#18803)
- Always preserve sorted flag for .dt.date (#18692)
- Enable additional
rufflint rule sets (#18721) - Implement single inequality joins for join_where (#18727)
🐞 Bug fixes
- DataFrame plot was raising when some extra keywords were passed to encodings (e.g.
x=alt.X(a, axis=alt.Axis(labelAngle=30))) (#18836) - Respect strictness in list constructor (#18853)
- Properly broadcast array arithmetic (#18851)
- Throw error for comparison of unequal length series (#18816)
- Raise when parquet file has extra columns and no
select()was done (#18843) - Pass missing user params in
write_csv(#18845) - Improve
joinargument checks (#18847) - Struct filter by index (#18778)
- Proper dtype casting for struct embedded categoricals in chunked categoricals (#18815)
- Fixed some error/assertion types (#18811)
- Remove panic in
arr.to_struct(#18804) - Allow empty sort by columns (#18774)
- Broadcast zip_with for structs (#18770)
- Dropped/shifted rows in parquet scan with
streaming=True(#18766) - Fix
cum_maxusing exception text ofcum_minfor invalid dtype (#18780) - Fix accidental raise on shape 1 (#18748)
📖 Documentation
- Fix link to issue tracker and code snippet format in GPU docs (#18850)
- Clarify documentation for
schemainread_csvfunction (#18759) - Fix literal type mapping example in
litdocstrings (#18756) - Refactor
docsdirectory hierarchy (#18773) - Minor improvements to contributing guide (#18777)
- Improve
overdocs, add example withorder_by(#18796) - Add documentation for beta gpu support (#18762)
🛠️ Other improvements
- Re-export PyO3 in
polars-pythoncrate (#18835) - Make
NodeTraverserstruct public (#18822) - Add panic to unchecked DataFrame constructors in debug mode (#18807)
- Fix parquet file metadata is dropped after first DSL->IR conversion (#18789)
- Remove extra hashmap construction in new-streaming parquet (#18792)
- Remove TODO comment regarding NumPy pinning (#18776)
- Remove unused methods (#18744)
- Make DataFrame a Vec of
Columninstead ofSeries(#18664) - Run benchmark on PR labeled 'needs-bench' (#18737)
- Enable additional
rufflint rule sets (#18721)
Thank you to all our contributors for making this release possible!
@3ok, @Manishearth, @MarcoGorelli, @adamreeve, @alexander-beedie, @barak1412, @beckernick, @bradfordlynch, @coastalwhite, @deanm0000, @eitsupi, @i64, @itamarst, @mcrumiller, @nameexhaustion, @orlp, @r-brink, @ritchie46, @rodrigogiraoserrao, @squnit, @stinodego and @t-ded