Skip to content

Releases: narwhals-dev/narwhals

Narwhals v1.11.1

28 Oct 10:35
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add .select (by str) for duckdb and ibis backend (#1266)
  • feat: better error message for duplicate column names in pandas (#1270)
  • feat: expose generate_temporary_column_name (#1264)

🐞 Bug fixes

  • fix: remove _dtype_cache for pandas-like so that inplace modification… (#1268)
  • fix: Cudf groupby iter (#1265)

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

Narwhals v1.11.0

27 Oct 15:57
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: improve performance of Series.dtype and DataFrame.schema for pandas-like (#1255)
  • perf: avoid redundant copies when resetting index for pandas (#1252)
  • perf: always use copy=False when doing rename for pandas (#1247)
  • perf: pandas-like fastpath in maybe_reset_index (#1246)

✨ Enhancements

  • feat: Add total seconds implementation for cuDF (#1188)
  • feat: add drop_null_keys argument to group_by (#1257)

📖 Documentation

  • docs: add duckdb to docs (#1261)
  • docs: fix parameters table rendering in quantile docs (#1251)
  • docs: zen dedicated doc page (#1243)
  • docs: Wimsey added to project list in Readme (#1242)
  • docs: DataFrame conversion tutorial (#1240)

🛠️ Other improvements

  • test: xfail cudf failures (#1259)
  • test: get groupby tests passing for pandas 1.0.x (#1253)
  • test: update cudf xfails based on latest version (#1250)
  • test: only test dask with partitions=2 for now (#1248)
  • ci: add tubular in ci checks (#1211)
  • chore: make module versions as constants for use in tests (#1235)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @FBruzzesi, @LiamConnors, @MarcoGorelli, @benrutter, and @vincentarelbundock

Narwhals v1.10.0

21 Oct 07:55
Compare
Choose a tag to compare

Changes

  • bug: fix pyarrow to_date (#1216)
  • simplify marimo in downstream_tests.yml (#1214)
  • Simplify return function in _pandas_like.utils.py (#1204)

🚀 Performance improvements

  • perf: move maybe_evaluate_expr out of for loop in reuse_series_implementation (#1217)

✨ Enhancements

  • feat: add is_into_series (#1215)
  • enh: add dt.timestamp (#1220)
  • feat: add to_py_scalar (#1194)

🐞 Bug fixes

  • fix: flaky test on polars==0.20.30 (#1231)
  • fix: Add df.rows(named=False) support for cuDF data frames (#1186)

📖 Documentation

  • docs: Pyarrow example docstrings for Expr and stable v1 API (#1218)
  • doc: add note about cuDF tests in contributing guide (#1227)
  • docs: update installation.md (#1221)
  • docs: move index to start of API reference (#1213)
  • doc: Add uv to quick start (#1169)
  • docs: Add Pyarrow example to Expr.mean (#1207)
  • docs: add 'commotion' to Zen (#1208)

🛠️ Other improvements

  • chore: refactor compare_dicts (#1224)
  • chore: series and expr namespaces typing with generics (#1232)
  • chore: nox doctests only in Python 3.12 (#1222)
  • chore: use constructors (#1210)
  • test: xfail iter_rows tests for cudf (#1209)
  • chore: tests cleanup and add from __future__ import annotations (#1206)

Thank you to all our contributors for making this release possible!
@CarloLepelaars, @DeaMariaLeon, @EdAbati, @FBruzzesi, @LiamConnors, @MarcoGorelli, @artiom-matvei, @luke396, @mscolnick, @raisadz and @schloerke

Narwhals v1.9.4

17 Oct 11:22
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add from_arrow (which uses the PyCapsule Interface) (#1181)
  • feat: Add 'IntoSeries' (#991)
  • feat: add ConstructorEager type (#1091)
  • feat: Adding allow inspecting inner fields of nw.Struct (#1192)
  • feat: add The Zen of Narwhals (#1168)
  • feat: add <min|max>_horizontal (#1148)

🐞 Bug fixes

  • fix: add __native_namespace__ for interchange support dataframes (#1172)

📖 Documentation

  • docs: Update CONTRIBUTING.md with Python 3.12 (#1197)

🛠️ Other improvements

  • test: update cuDF tests (#1196)
  • ci: only check doctests on Python3.12 (#1189)
  • ci: add downstream tests for marimo (#1166)
  • chore: Delete tpch/notebooks directory (#1180)
  • test: unxfail test_unary for dask (#1174)
  • ci: try fixup bump-version.yml (#1171)
  • ci: bump version workflow (#1063)
  • chore: Use shiny's Makefile to allow for test commands to change over time (#1161)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @ChinoUkaegbu, @DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @dependabot, @dependabot[bot], @lucianosrp, @luke396, @raisadz and @schloerke

Narwhals v1.9.3

11 Oct 12:24
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • enh: Add .rows(named=False) support for pyarrow (#1155)

🐞 Bug fixes

  • fix: make Series.scatter always return new series (#1159)

📖 Documentation

  • docs: Used by marimo (#1162)
  • docs: separate out DataFrame and LazyFrame in api-completeness (#1157)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @Cheukting, @MarcoGorelli, @akshayka and @schloerke

Narwhals v1.9.2

09 Oct 07:30
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: Impove pandas-backend indexing (#993)

✨ Enhancements

  • feat: add dt.replace_time_zone (#1142)
  • feat: allow format=None in str.to_datetime (#1145)
  • feat: concat_str (#1128)
  • feat: allow inspecting the inner type / length of nw.Array (#1136)

🐞 Bug fixes

  • fix: when-then-otherwise lit string for arrow backend (#1137)
  • fix: pyarrow unpivot upcast numeric (#1140)
  • fix: update no_agg to work with cuDF (#1138)
  • fix: fixing unnesscary raise of mean_horizontal (#1082)

📖 Documentation

  • docs: apply further changes to api reference (#1150)
  • docs: add missing methods in api reference (#1144)
  • docs: add missing Series str methods in api reference (#1143)
  • docs: fix small docs typo (#1141)

🛠️ Other improvements

  • test: xfail test_unpivot_mixed_types for cuDF (#1153)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @Cheukting, @DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @aivanoved, @pre-commit-ci and @pre-commit-ci[bot]

Narwhals v1.9.1

04 Oct 14:54
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: Series.str.to_datetime (#1131)
  • feat: make typing available under narwhals.stable.v1 (#1130)
  • feat: add nulls_last kw in dataframe sort (#1124)

🐞 Bug fixes

  • fix: Fix DataFrame.__getitem__ when slicing with tuple and null slice (#1123)

📖 Documentation

  • docs: add Ibis to "related projects" (#1126)
  • docs: correct python bytes description (#1115)
  • docs: fix some docs issues (#1114)
  • docs: assorted docs updates (#1109)

🛠️ Other improvements

  • ci: add py-shiny to downstream tests (#1132)
  • test: xfail test_actual_object for cuDF (#1129)
  • test: xfail tz_aware test for cuDF (#1118)
  • test: xfail empty string test in test_unpivot (#1113)

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

Narwhals v1.9.0

01 Oct 08:39
Compare
Choose a tag to compare

Changes

  • ci: add name-tests-test to pre-commit (#1093)

✨ Enhancements

  • feat: allow inspecting the inner type of List (#1104)
  • feat: add maybe_reset_index for pandas-like dataframe or series (#1095)
  • feat: Datetime(time_unit, time_zone) and Duration(time_unit) types (#960)
  • feat: add dtypes to stable api (#1087)

🐞 Bug fixes

  • fix: Specialize typing in dataframe between Frame and DataFrame (#1030)
  • fix: PandasLikeSeries.zip_with scalar value and DaskNamespace.when (#1099)
  • fix: drop_nulls with subset of length>1 (#1090)
  • fix: make narwhalify part of stable api (#1086)

📖 Documentation

  • doc: add pyarrow to DataFrame docstring (#1097)
  • docs: Added new logo (#1085)
  • docs: add pyarrow to dataframe lazy docstring (#1055)

🛠️ Other improvements

  • chore: Refactor validate_column_comparand (#1102)
  • test: xfail __iter___test for cuDF (#1106)
  • test: update check for cuDF series (#1105)
  • test: allow cuDF series in compare_dicts (#1100)
  • test: xfail test using None on to_numpy for cuDF (#1092)
  • chore: rename translate_dtype to native_to_narwhals_dtype (#1089)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @V-Alizade, @luke396 and @raisadz

Narwhals v1.8.4

27 Sep 15:42
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: Initial support for nested dtypes (List, Array, Struct) (#1083)
  • feat: add DataFrame|LazyFrame.unpivot method (#1043)
  • feat: add to_pandas and to_arrow for interchange level of support (#1066)
  • feat: add series.rename (#1073)
  • feat: Adding nth() for selecting columns (#1044)

🐞 Bug fixes

  • fix: fixing nw.all() doesn't work in sum_horizontal (#1075)
  • fix: pandas and dask group by observed=True (#1079)
  • fix: add cuDF specific implementation for join how="anti" (#1056)

🛠️ Other improvements

  • chore: get_<dependency> cleanup (#1074)
  • ci: Added PR labels so the Release Drafter ignores evil bots (#1069)
  • ci: delete all local tags before making release (#1062)

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

Narwhals v1.8.3

24 Sep 08:33
Compare
Choose a tag to compare

Changes

  • [pre-commit.ci] pre-commit autoupdate (#1052)
  • Implementing to_native in lazyframe (#1025)
  • Add pyarrow to_csv docstring (#1027)
  • Extensions page improvement (#1024)
  • Only run tests located in the tests directory (#1015)
  • add PyArrow usage example in docstrings DataFrame.columns (#1010)

🚀 Performance improvements

  • test: use pytest-randomly, recommend pytest-xdist in docs (#1019)
  • perf: low-hanging overhead (#1034)

✨ Enhancements

  • feat: add Series.__iter__ (#1057)
  • feat: add Series.dtype return annotation (#1049)
  • feat: improve Series repr (#1038)
  • feat: add str.len_chars (#1036)
  • feat: adding to_native to dataframe (#1014)
  • feat: adding to_native to Series (#1020)

🐞 Bug fixes

  • fix: move __len__ to DataFrame only (#1053)
  • fix: add cuDF specific implementation for join how="anti" (#1041)
  • fix: tuple supported for getitem for Pandas dataframes (#1026)
  • fix: generate backend table (#1035)
  • fix: polars getitem on polars==0.20.30 (#1032)
  • fix: package dependency added pyarrow in docs (#1029)

📖 Documentation

  • docs: add pyarrow example for dataframe getitem and to_dict (#1033)
  • docs: add dtypes check in utils/check_api_reference.py (#983)
  • docs: Add DataFrame.pipe to API completeness table (#1021)
  • docs: Update contributing guidelines (#1031)
  • docs: Include PyArrow in Tutorial/Series (#1022)
  • docs: include PyArrow in Tutorial/DataFrame (#1016)
  • docstrings pyarrow support for dataframe.to_pandas() (#1018)
  • docs: Add pyarrow example to Installation guide (#1023)
  • docs: add pycapsule interface to related projects #1011 (#1017)

🛠️ Other improvements

  • fix: add cuDF specific implementation for join how="anti" (#1041)
  • test: xfail test_group_by_n_unique_w_missing for cuDF (#1039)
  • test: use pytest-randomly, recommend pytest-xdist in docs (#1019)
  • test: add specific check for cuDF for test_to_datetime (#995)
  • chore: removing docs/generate_members.py (#1012)

Thank you to all our contributors for making this release possible!
@Cheukting, @Dosenpfand, @FBruzzesi, @HeitCunha, @Jupetus, @LiamConnors, @MarcoGorelli, @MathiasHolmstrom, @Morena1996, @TNieuwdorp, @V-Alizade, @anopsy, @gauthierpiarrette, @jeroenjanssens, @juanchodpg2, @lucianosrp, @mattcristal, @mikeweltevrede, @pre-commit-ci, @pre-commit-ci[bot], @sTomerG, @summerscope and @thomend