Skip to content

Releases: narwhals-dev/narwhals

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

Narwhals v1.15.1

01 Dec 10:11
Compare
Choose a tag to compare

Changes

🐞 Bug fixes

  • fix: follow left-hand-rule in index alignment in from_dict (#1475)

🛠️ Other improvements

  • chore: polars type hinting (#1467)

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

Narwhals v1.15.0

30 Nov 16:02
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: consistently return Python scalars from Series reductions for PyArrow (#1471)
  • feat: make Series generic (#1412)
  • feat: create dataframe from 2D numpy array and column names (#1456)
  • feat: diagonal concat (#1455)

🐞 Bug fixes

  • fix: address lit broadcasting and output name of right arithmetic ops (#1424)

📖 Documentation

  • docs: clean lazyframe docstrings (#1466)
  • docs: ecosystem and resources (#1468)
  • docs: add from/to_native in documentation examples (#1461)

🛠️ Other improvements

  • ci: Remove vegafusion from blocking releases, assert current branch in bump_version (#1470)
  • chore: PyArrow type hinting (#1465)
  • ci: add hierarchicalforecast (#1460)

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