Skip to content

Releases: narwhals-dev/narwhals

Narwhals v1.5.3

23 Aug 06:24
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: dask in api-completeness table (#741)
  • feat: add DaskExpr.quantile (#835)
  • feat: mean_horizontal (#843)
  • feat: support __getitem__ with slices for columns (#839)

📖 Documentation

  • docs: add narwhals-gif to README.md (#845)
  • docs: Fix indentation for getitem (#844)

🛠️ Other improvements

  • ci: changed release-drafter regex (#846)
  • test: remove to_numpy and to_list in tests (#842)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @MarcoGorelli and @anopsy

Narwhals v1.5.2

21 Aug 11:00
Compare
Choose a tag to compare

Changes

🐞 Bug fixes

  • fix: __array__ for pandas (pyarrow dtypes) was raising for old versions of PyArrow (#837)

Thank you to all our contributors for making this release possible!
@MarcoGorelli

Narwhals v1.5.1

21 Aug 10:50
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: write_csv (#832)
  • feat: support dtype and copy in DataFrame.array (#826)
  • feat: allow for non-string columns in select for pandas backend (#828)

🐞 Bug fixes

  • fix: improve validate columns (#829)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon and @MarcoGorelli

Narwhals v1.5.0

20 Aug 14:14
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add dt.to_string to DaskExpr (#796)
  • feat: add DaskExpr.total_minutes, total_seconds, total_milliseconds, total_microseconds, total_nanoseconds (#811)
  • feat: dask expr is_unique & is_duplicated (#803)
  • feat: add is_in to DaskExpr and mark is_duplicated and is_unique as not implemented (#802)

📦 Build system

  • build: Add cudf and modin to deps (#816)

🛠️ Other improvements

  • test: Remove some to_numpy (#820)
  • build: Add cudf and modin to deps (#816)
  • test: Remove some to_list() (#812)
  • test: Use compare dicts in is_duplicated_test (#809)
  • ci: Modified drafter's labeller regex to match titles with uppercase (#807)
  • chore: use compare_dict in series tests (#801)
  • test: Improve duration_attribute_tests (#798)
  • chore: stable api narwhalify de-duplication (#799)
  • test: Add cudf_constructor to conftest (#797)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @benrutter, @lucianosrp, @luke396 and @thomasjpfan

Narwhals v1.4.2

15 Aug 16:31
Compare
Choose a tag to compare

Changes

  • [pre-commit.ci] pre-commit autoupdate (#308)

✨ Enhancements

  • feat: add diff() method to Dask backend (#793)
  • feat: add dask Expr.null_count (#792)

🐞 Bug fixes

  • fix: cuDF compat (#794)

📖 Documentation

  • docs: add Narwhals.dependencies to API reference (#791)

Thank you to all our contributors for making this release possible!
@MarcoGorelli, @anopsy, @pre-commit-ci, @pre-commit-ci[bot] and @raisadz

Narwhals v1.4.1

14 Aug 08:07
dbfd722
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add narwhals.new_series (#787)
  • feat: Support Arrow PyCapsule Interface for export (#786)
  • feat: improve typing for to_pandas / to_numpy / to_arrow (#783)
  • feat: extend dataframe drop method (#773)

🛠️ Other improvements

  • chore: import overhaul (#788)
  • chore: rename _native_dataframe to _native_frame (#785)
  • chore: rename internal dtype functions (#780)

Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli and @anopsy

Narwhals v1.4.0

13 Aug 08:50
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: remove some lambdas from _dask backend (#765)

✨ Enhancements

  • feat: allow from_dict to not have native_namespace arg if all inputs are already narwhals Series (#760)
  • feat: extend dataframe drop_nulls method (#779)
  • feat: implement LazyFrame.head for Dask (plus: run tpc-h q2 query with Dask present) (#768)
  • feat: add str.replace and str.replace_all (#750)
  • feat: dask lazyframe remaining methods (#778)
  • feat: dask sum_horizontal (#775)
  • feat: dask namespace lit method (#772)
  • feat: DaskSelectorNamespace (#771)
  • feat: dataframe to_arrow method (#770)
  • feat: series to_arrow method (#769)
  • feat: dask expr is_first|last_distinct methods (#764)
  • feat: dask expr __invert__, is_null, n_unique methods (#763)
  • feat: dask expr len method (#762)
  • feat: Series.pipe and Expr.pipe (#582)

🐞 Bug fixes

  • fix: empty with_columns not working for pandas backend (#757)

📖 Documentation

  • docs: add Altair to "used by" section (#776)
  • docs: include "downloads per month" in readme (#774)
  • docs: run tpch q1 with more libraries (#759)
  • docs: use animals instead of cars in example (#758)
  • docs: patch Series.cat page (#755)

🛠️ Other improvements

  • chore: simplify Expr.clip (#777)
  • chore: tests series_only refactor (#766)

Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @lucianosrp and @muddi900

Narwhals v1.3.0

09 Aug 13:08
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: keep nw.len totally lazy for dask (#749)

✨ Enhancements

  • feat: Added Expr.any and Expr.all to Dask (#748)
  • feat: arrow __mod__ method (#618)
  • feat: allow tpc-h q1 to be run with Dask as backend (#747)
  • feat: add NotImplementedError error for index changing methods Dask (#744)
  • feat: Added Expr.abs to Dask (#728)
  • feat: add Dask Expr.count (#731)
  • feat: dask expr name namespace (#735)
  • feat: add date to datetime namespace (#713)
  • feat: dask expr dunder methods (#740)

Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @anopsy, @lucianosrp and @mistShard

Narwhals v1.2.0

07 Aug 18:31
Compare
Choose a tag to compare

Changes

  • Feat: Series.shift Pyarrow Backend Implementation (#590)
  • move over dask dt attributes tests (#704)

🚀 Performance improvements

  • perf: only use as_py for pyarrow when necessary (before pyarrow 13) (#724)

✨ Enhancements

  • feat: arrow and dask expr clip method (#729)
  • feat: add dask Expr.std (#734)
  • feat: support reductions in lazyframe.select for Dask (#723)
  • feat: DaskLazyFrame unique method (#726)
  • feat: DaskLazyFrame join and sort, DaskNamespace all (#725)
  • feat: add group_by to dask (#718)
  • feat: add series and expr clip method (#701)
  • feat: Add Expr.round to Dask (#709)
  • feat: add strip_chars to string namespace (#715)
  • feat: ArrowGroupBy.__iter__ method (#717)
  • feat: arrow expr over method (#721)
  • feat: dask with_row_index and rename (#692)
  • feat: dask equality and inequality operators (#708)
  • feat: add round to Arrow (#696)
  • feat: dask any_horizontal and generalize all_horizontal (#693)
  • feat: Dask frame drop method (#699)
  • feat: dask schema and collect_schema (#688)
  • feat: add dask Expr.max and test (#691)
  • feat: add dask Expr.min and test (#690)

🐞 Bug fixes

  • patch: pandas-like and pyarrow scalar reduction fix (#716)

📖 Documentation

  • docs: how it works bulletpoint indentation (#719)
  • docs: Fix how-it-works, add favicon+logo (#710)
  • docs: correction of how_it_works.md (#707)
  • docs: Contributing guide correction (#706)
  • docs: fix todo, avoid lazyframe collect_schema warning (#687)
  • docs: explain translation from narwhals api to native api (#684)

🛠️ Other improvements

  • ci: fix import error from dask test (#737)
  • ci: fix ci from pytest importerror (#736)
  • test: improve coverage for from_native (dask) (#733)
  • test: toggle coverage for dask group_by (#732)
  • chore: Factor all remaining tests out of test_common.py (#720)
  • chore: remove dask_test completely (#705)
  • chore: moving most dask tests over to the main test suite (#703)
  • test: mark failing dask tests, add dask to constructor (#697)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @aivanoved, @amol-, @anopsy, @condekind, @lucianosrp, @mfonekpo and @mistShard

Narwhals v1.1.9

30 Jul 16:27
Compare
Choose a tag to compare

Changes

  • Feat: Dask filter and and method added (#676)
  • bug: fix iter_rows inconsistency in pandas (#671)

🚀 Performance improvements

  • perf: some comprehensions over loops (#679)

✨ Enhancements

  • feat: add fill_null to DaskExpr (#685)
  • feat: add drop_nulls for dask (#675)
  • feat: dask columns property & filter method (#670)
  • feat: dask select method (#667)
  • feat: add year, month, day, hour, minute, second, millisecond, micros… (#666)
  • feat: add to_lowercase, to_uppercase, to_datetime for dask (#665)
  • feat: add ends_with, contains, slice for dask (#664)
  • feat: Added Dask Expr.sum (#662)

🐞 Bug fixes

  • fix: dask expr dt.nanosecond implementation (#678)

📖 Documentation

  • doc: Made changes to the file explaining the UserWarning error while using pandas `group_by's (#677)

🛠️ Other improvements

  • tests: add pytest-env to dev requirements (#683)
  • ci: adopt uv (#682)
  • chore: factor system_info tests outside test_common (#680)
  • test: xfail uppecase for dask and pyarrow 11.0.0 (#672)
  • chore: enable more lazy tests (#663)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @EdAbati, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @benrutter, @lucianosrp, @mistShard and @montanarograziano