Skip to content

Releases: narwhals-dev/narwhals

Narwhals v1.20.1

30 Dec 09:58
Compare
Choose a tag to compare

Changes

🐞 Bug fixes

  • fix: is_duplicated was returning wrong-length result for PyArrow and Dask (#1679)

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

Narwhals v1.20.0

30 Dec 09:16
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • chore, perf: arrow cat namespace (#1663)

✨ Enhancements

  • feat: raise informative error message when grouping by expressions (#1677)
  • feat: expressify lower_bound and upper_bound in is_between (#1672)
  • feat: Relax cuDF minimum version to 24.10.0 (#1649)
  • Feat/add collect schema to interchange dfs (#1646)
  • feat: Add support for .shift(n).over('col') for pandas-like DataFrames (#1627)

🐞 Bug fixes

  • fix: pyspark group by with kwargs (#1665)

📖 Documentation

  • docs: use IntoDataFrameT/IntoFrameT in docs (#1664)
  • docs: Add return type description for more series namespace (#1675)
  • docs: Add more return type descriptions for Series (#1674)
  • docs: add return type descriptions for cum_count, cum_max, cum_min, cum_prod, cum_sum in Series (#1673)
  • docs: add return type descriptions to Series arg_true, cast, clip, count (#1667)
  • docs: Add return descriptions to Series's abs, alias, all, any methods for clarity (#1653)

🛠️ Other improvements

  • chore: pyarrow do not combine chunks (#1662)
  • chore: flatten subset in unique one level up (#1671)
  • test: add test for nw.Expr|Series.str.contains with literal=True (#1670)
  • test: check keys are in the same order in assert_equal_data (#1668)
  • ci: improve publish ci to use env vars (#1652)
  • chore: use __narwhals_namespace__ more (#1658)
  • ci: split dev from extra (#1655)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @ClaudioSalvatoreArcidiacono, @Dhanunjaya-Elluri, @FBruzzesi, @MarcoGorelli and @luke396

Narwhals v1.19.1

23 Dec 08:31
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: avoid merge in pandas groupby (#1638)

✨ Enhancements

  • feat: add collect schema to interchange dfs (#1646)
  • feat: support std and var with ddof !=1 in pandas-like group by (#1645)
  • feat: add DataFrame and LazyFrame explode method (#1542)

🐞 Bug fixes

  • fix: Make compatible with latest cuDF release (#1640)

📖 Documentation

  • docs: Note that maintains_order has no effect (but keep around for backwards-compatibility) (#1643)
  • docs: fix typing example (#1637)
  • docs: Use relative paths (#1636)
  • docs: Remove warnings when building docs (#1631)
  • docs: returns and arguments documentation for lazyframe class (#1630)
  • docs: null handling (#1624)

🛠️ Other improvements

  • chore: Update pyproject.toml (#1642)
  • chore: register kwargs for CompliantExpr (#1614)
  • fix: exclude protocols in api completeness script (#1635)
  • test: not-so-old-versions, pretty-old-versions, nightlies (#1626)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @DeaMariaLeon, @Dhanunjaya-Elluri, @FBruzzesi, @MarcoGorelli, @marenwestermann and @marvinl803

Narwhals v1.19.0

19 Dec 14:18
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: streamline pyarrow and pandas group by agg (#1621)

✨ Enhancements

  • feat: add Series|Expr.rolling_var and Series|Expr.rolling_std (#1451)
  • fix: Add support for pandas cumulative operations with over (#1565)
  • feat: add var to Expr and Series (#1603)

🐞 Bug fixes

  • fix: nw.col('a').is_in(df['b']) was raising (#1616)
  • fix: pandas and pyarrow were raising for repeated aggregations involving the same root name and the same aggregation function (#1613)

📖 Documentation

  • docs: more args and returns documentation in DataFrame class (#1600)
  • docs: make docstring examples function names more descriptive in functions.py (#1602)
  • docs: improve DataFrame, LazyFrame and Series docstrings (#1622)

🛠️ Other improvements

  • ci: unpin scikit-learn in scikit-lego test (#1611)
  • ci: Speed up tests in local development (#1608)
  • test: downstream test for tea-tasting (#1605)
  • test: minimum versions (#1617)

Thank you to all our contributors for making this release possible!
@ClaudioSalvatoreArcidiacono, @DeaMariaLeon, @Dhanunjaya-Elluri, @FBruzzesi, @Machele-codez, @MarcoGorelli, @e10v, @marenwestermann and @skritsotalakis

Narwhals v1.18.4

15 Dec 17:27
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add Series and Expr arg_min & arg_max (#1529)

🐞 Bug fixes

  • fix: allow np.scalar to be used in Series.getitem (#1515)
  • fix: fix pyarrow len aggregation behaviour for depth-1 exprs (#1589)

📖 Documentation

  • docs: document arguments and returns in DataFrame class (#1594)
  • docs: add tea-tasting to ecosystem (#1593)
  • docs: Correct small error in IntoDataFrameT and IntoSeriesT (#1591)
  • docs: add docstring example for Array in narwhals.dtypes (#1576)

🛠️ Other improvements

  • test: xfail cudf argmin / argmax (#1599)
  • chore: use set_axis in maybe_set_index (#1598)
  • test: fixup more cuDF xfails (#1596)
  • test: xfail test_group_by_shift_raises for cudf (#1595)
  • chore: Add some Compliant Protocols (#1522)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @DeaMariaLeon, @Dhanunjaya-Elluri, @MarcoGorelli, @Nathan-Bransby-NMT, @e10v, @marenwestermann and @thevro

Narwhals v1.18.3

13 Dec 18:56
Compare
Choose a tag to compare

Changes

  • release: Bump version to 1.18.2 (#1582)

✨ Enhancements

  • feat/fix: Improve error message when trying to do unsupported group-by aggregation, and raise instead of giving inconsistent results (#1584)

🛠️ Other improvements

  • refactor: PandasLikeExpr repr and init (#1585)

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

Narwhals v1.18.2

13 Dec 13:29
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: use lru_cache for native_to_narwhals_dtype (#1564)

✨ Enhancements

  • feat: add Decimal dtype (#1571)
  • feat: Preserve null values in old Polars versions for ewm_mean (#1574)
  • enh: add read_parquet / scan_parquet (#1577)
  • feat: add nw.Int128, nw.UInt128 (#1570)
  • feat: add **kwargs to read_csv and scan_csv (#1560)
  • feat: scan_csv (#1555)

📖 Documentation

  • docs:add docstring series getitem (#1559)
  • docs: Restore image in docs (#1573)
  • docs: add security page to docs, try removing some temporary CI pins (#1568)
  • docs: add nw.Expr.list, nw.Series.list to api-reference (#1558)

🛠️ Other improvements

  • ci: fixup release process (#1580)
  • refactor: use nw.scan_parquet in tpch benchmarks (#1578)
  • ci: remove pull_request_target, sanitise github.ref_name (#1567)

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

Narwhals v1.17.0

10 Dec 16:23
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: read_csv (#1551)
  • feat: Adding dataframe estimated size (#1549)
  • enh: nw.dependencies.is_narwhals_dataframe / nw.dependencies.is_narwhals_lazyframe / nw.dependencies.is_narwhals_series (#1550)
  • feat: ListNamespace.len() for Expr and Series (#1536)

🐞 Bug fixes

  • fix: return Python scalar for Series.getitem when pyarrow-backed (like Polars does) (#1554)
  • fix: .list namespace should preserve pandas index (#1538)

📖 Documentation

  • docs: Add a docstring example in narwhals.dtypes for Datetime (#1544)

🛠️ Other improvements

  • ci: temporary pins to get CI green (#1552)
  • ci: actually test against pandas nightly, don't filter "copy is deprecated" warnings (#1547)
  • chore: avoid unnecessary branching on pl version in pln.mean (#1543)
  • ci: fix template name (#1540)
  • ci: try using "unrelease" version-template for release drafter (#1539)
  • chore: rename series and expr to _compliant for Arrow, Polars, and Dask (#1537)
  • ci: actually test against pandas nightly, don't filter "copy is deprecated" warnings (#1547)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @DeaMariaLeon, @FBruzzesi, @Machele-codez, @MarcoGorelli, @anopsy, @marvinl803, @olp-cs and @raisadz

Narwhals v1.16.0

07 Dec 14:35
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: get_native_namespace accepts native objects (#1520)
  • feat: Expose nw.Implementation, along with Implementation.is_pandas, Implementation.is_pandas_like, and more (#1531)
  • feat: Add minimal PySpark support (#908)

📖 Documentation

  • docs: add link to "Generating a new SSH key" (#1530)
  • docs: Add narwhals.dtypes.Date docstring example (#1528)
  • docs: add example to Unknown dtype (#1521)
  • docs: add Duration dtype docstring example (#1516)
  • docs: add Enum dtype docstring example (#1514)
  • docs: add Object dtype docstring example (#1511)
  • docs: add return description for Series.to_list (#1513)
  • docs: update contributing guide by adding upstream remote (#1509)

🛠️ Other improvements

  • chore: remove many false positives from "ignore banned import" check (#1532)
  • chore: rename _expr to _compliant_expr in PandasLikeExpr (#1527)
  • chore: overload parse_into_expr (#1519)
  • chore: rename _call to _to_compliant_expr in narwhals/expr.py (#1518)
  • chore: _pandas_series to _compliant_series in PandasSeries (#1517)
  • test: fix nox dependencies (#1497)

Thank you to all our contributors for making this release possible!
@BenjaminFraser, @EdAbati, @MarcoGorelli, @camriddell, @chrisschopp, @czhanger, @munsoor, @olp-cs, @ontowhee, @reshamas and @skritsotalakis

Narwhals v1.15.2

03 Dec 13:14
Compare
Choose a tag to compare

Changes

  • patch: fix dtypes rendering (#1481)

✨ Enhancements

  • feat: raise informative error message for DataFrame.eq/neq (#1494)
  • feat: add Series.__contains__ (#1480)
  • feat: improve invalid concat error message (#1491)

🐞 Bug fixes

  • fix: nw.Series could not be pickled (#1488)
  • fix: Set level correctly for lazy-only implementations (#1478)

🛠️ Other improvements

  • chore: Remove unused code in pandas like series (#1489)
  • chore: rename _change_dtypes to _change_version (#1490)
  • chore: rename validate_column_comparand utility functions, add pep740 badge (#1477)

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