Skip to content

Releases: narwhals-dev/narwhals

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

Narwhals v1.14.3

28 Nov 19:56
Compare
Choose a tag to compare

Changes

  • BUG: remove cudf from import hooks (#1445)

✨ Enhancements

  • feat: allow for "import narwhals.stable.v1.selectors as cs" (#1459)
  • feat: raise NotImplementedError for not supported parameters in ewm_mean for cuDF (#1449)
  • feat: silently support Fireducks and cudf.pandas (#1439)
  • feat: improve concat error message and concat docs (#1435)

🐞 Bug fixes

  • fix: Preseve dtypes modules in from dict (#1458)

📖 Documentation

  • docs: fixup typing in docstrings (#1452)
  • docs: fixup copy button (#1440)
  • docs: Add docstrings with examples to types (#1438)

🛠️ Other improvements

  • ci: Check docstrings don't have unused imports in docstring examples (#1453)
  • ci: get cudf tests passing again (#1446)
  • chore: add backend_version parameter to polars dtype translation utility (#1441)

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

Narwhals v1.14.2

23 Nov 15:03
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: improve error message when casting to invalid type (#1429)
  • feat: add support for Series|Expr.skew method (#1173)
  • feat: make sure from narwhals.stable.v1.dependencies import works (#1430)
  • feat: support constraints in DataFrame.filter (#1417)
  • feat: add Expr|Series.rolling_mean method (#1290)

🐞 Bug fixes

  • fix: return Python bool instead of pyarrow boolean scalar for Series reductions (#1432)
  • fix: correct minimum Polars version for ewm_mean (#1415)

📖 Documentation

  • docs: use type hints + from_native/to_native in dataframe.py (#1425)
  • docs: explain optional boolean args in from_native (#1421)
  • docs: Add documentation for LazyGroupBy (#1423)
  • docs: add Plotly to the list of projects using Narwhals in README.md (#1418)
  • docs: use type hints + from_native/to_native in dataframe.py (#1411)
  • docs: use type hints + from_native/to_native in series.py (#1408)
  • docs: add vegafusion to "used by" on readme (#1409)
  • docs: use from_native / to_native in series.py (#1406)
  • docs: use boolean columns in any/all horizontal docstrings (#1403)
  • docs: use from_native / to_native in expr.py (#1404)

🛠️ Other improvements

  • ci: temporarily pin olama (#1422)
  • fix: correct minimum Polars version for ewm_mean (#1415)

Thank you to all our contributors for making this release possible!
@CarloLepelaars, @DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @gvwilson, @marenwestermann and @raisadz

Narwhals v1.14.1

19 Nov 11:18
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: Adding ewm_mean (#1298)
  • feat: add Series|Expr.rolling_sum method (#1395)

🐞 Bug fixes

  • fix: remove rogue "t" in ColumnNotFoundError (#1398)

🛠️ Other improvements

  • ci: add plotly to downstream tests (#1376)
  • ci: prevent ibis from setting upper bounds (where possible) (#1399)

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

Narwhals v1.14.0

18 Nov 11:05
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: add Series|Expr.is_finite method (#1341)
  • feat: make exceptions module public (#1391)
  • feat: consistently raise ColumnNotFoundError for missing columns in select and drop (#1389)
  • feat: add Series|Expr.cum_prod method, add reverse kw in cum_sum method (#1386)
  • feat: add Series|Expr cum_min and cum_max methods (#1384)
  • feat: Improve error message when comparing Series with list literal, or when using multi-output expressions in unsupported context (#1382)
  • feat: add Series|Expr.cum_count method (#1380)

📖 Documentation

  • docs: add missing description for left join strategy (#1396)
  • docs: pandas boolean content tabs (#1394)
  • docs: Add page about pandas booleans (#1392)
  • docs: Show ExprT as return type for Expr namespaces (#1388)
  • docs: Start using Darglint (#1387)
  • docs : docstrings examples - dtypes (#1121)
  • docs: Document more return types (#1381)
  • docs: Avoid copying >>> and ... from clipboard (#1375)

🛠️ Other improvements

  • chore: update InvalidIntoExprError to mention nw.lit (#1393)
  • chore: Consistent invalid IntoExpr error (#1379)
  • feat: consistently raise ColumnNotFoundError for missing columns in select and drop (#1389)
  • chore: suggest to add issue number in pr template (#1378)
  • chore: More Polars typing, update 'used by', link to roadmap (#1377)
  • chore: cleanup tpch execute (#1374)

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

Narwhals v1.13.5

13 Nov 12:43
Compare
Choose a tag to compare

Changes

🚀 Performance improvements

  • perf: simplify pandas-like with_columns (#1366)

✨ Enhancements

  • feat: add DataFrame.pivot for pandas like and Polars backend (#546)

🐞 Bug fixes

  • fix: pandas and arrow to_dummies with nulls (#1040)

📖 Documentation

  • docs: improve new_series docstring (#1365)

🛠️ Other improvements

  • test: unxfail test_to_dummies_drop_first_na for cudf (#1364)
  • chore: More typing in _polars (#1363)
  • chore: Improve typing in _polars/utils (#1358)
  • chore: add issue_deprecation_warning to generate_unique_token function (#1359)
  • chore: refactor ArrowDataFrame.with_columns (#1345)

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