Skip to content

Python Polars 0.19.3

Compare
Choose a tag to compare
@github-actions github-actions released this 15 Sep 15:32
· 2645 commits to refs/heads/main since this release
e8949ff

🏆 Highlights

⚠️ Deprecations

  • Rename is_first/last to is_first/last_distinct (#11130)
  • Rename count_match to count_matches (#11028)
  • Rename strip to strip_chars (#10813)
  • Add datetime_range expression function (#10213)

🚀 Performance improvements

  • optimize _unpack_schema() (#11080)
  • optimize polars.utils._post_apply_columns() (#11086)
  • optimize polars.utils._post_apply_columns() (#11041)
  • optimize _unpack_schema() (#10960)
  • improve performance of fast projection (#10945)

✨ Enhancements

  • Expressify str.split argument. (#11117)
  • Polars plugins (#10924)
  • better async_collect (#10912)
  • Expressify argument of binary contains (#11091)
  • dt.offset_by supports broadcasting lhs (#11095)
  • Expressify argument of binary starts_with and ends_with (#11076)
  • add OpenOffice spreadsheet support via new pl.read_ods function (#11011)
  • json_extract supports extract static and string value to list dtype (#11057)
  • add quote_style="never" option for write_csv (#11015)
  • Add literal for str count_match (#10996)
  • More dtypes supports cast to list (#11025)
  • Add strip_prefix and strip_suffix to the string namespace (#10958)
  • improve read_excel table data identification (#10953)
  • Add from_dataframe fast path and improve typing (#10979)
  • add openpyxl as a new/optional engine for read_excel (#6183)
  • Add datetime_range expression function (#10213)

🐞 Bug fixes

  • Correct hash and fmt for struct expr (#11119)
  • enforce sortedness of by argument in rolling_* functions (#11002)
  • Make Series.__getitem__ raise an IndexError (#11061)
  • Filter on empty objectChunked should not throw error (#11073)
  • ensure null_count statistics accounts for null array (#11070)
  • toggle off cse if ext_context is used (#11051)
  • Correct field dtype of string concat (#11055)
  • fix partial schema init with read_dicts and reduce latency of small-frame creation (#11047)
  • pushed-down expr should be considered when evaluating ExternalContext (#11023)
  • fix rolling_* functions when "by" has nanosecond resolution (#11005)
  • Don't reuse member for Selector::Add (#11026)
  • ensure series_equal properly accounts for dtypes when strict=True (#11012)
  • fix the construction of List<Null> (#10969)
  • write_excel "hidden_columns" parameter fails when taking a selector (#10987)
  • allow singular null in regex pattern (#10948)
  • compute length of null array in explode (#10946)

🛠️ Other improvements

  • remove low contrast coloring from visited links (#11133)
  • Ignore matplotlib warning (#11129)
  • Do not run user guide examples by default (#11128)
  • Ignore matplotlib mypy warnings (#11126)
  • Add deprecation message in groupby docs (#11121)
  • Removed duplicated example (#11109)
  • Add CODEOWNERS for docs folder (#11107)
  • Refactor starts_with and ends_with for string (#11085)
  • Integrate user guide (#11089)
  • remove mentions of the deprecated random module (#11087)
  • simplify SchemaDefinition type alias (#11077)
  • put fetch explanation in a "notes" block to better highlight it in the docs (#11058)
  • remove feature gate join/groupby in polars-core (#10965)
  • Add Documentation issue type (#11042)
  • warn that "by" argument must be sorted for results to be correct in rolling_* functions (#11013)
  • Adds missing method refs in LazyDataFrame API docs (#11027)
  • Add lint for boolean trap (#11010)
  • Add private LazyFrame method for setting sink optimizations (#10988)
  • Enable a few more ruff lints (#10998)
  • document polars string duration language in temporal range functions (#10978)
  • Additional tests for interchange get_data_buffer (#10966)
  • genericize PolarsDataType (#10952)
  • Document that filter, drop_nulls, left join preserve order (#10955)
  • add note about adbc flight sql driver (#10949)
  • Revert pydantic >= 2.0.0 requirement (#10944)
  • note that pl.duration represents fixed durations, point to offset_by for non-fixed (#10927)
  • Test S3 functionality using moto server (#10164)

Thank you to all our contributors for making this release possible!
@I8dNLo, @KacpiW, @MarcoGorelli, @Object905, @Qqwy, @TNieuwdorp, @alexander-beedie, @antoniocali, @bvanelli, @cjackal, @henrikig, @jakob-keller, @mrogowski11, @nameexhaustion, @orlp, @reswqa, @ritchie46, @s-banach, @stinodego, @svaningelgem and @thomasjpfan