Narwhals

Latest version: v1.30.0

Safety actively analyzes 714875 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 26

1.17.0

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

1.16.0

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

1.15.2

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

1.15.1

Changes

🐞 Bug fixes

- fix: follow left-hand-rule in index alignment in from_dict (https://github.com/narwhals-dev/narwhals/pull/1475)

🛠️ Other improvements

- chore: polars type hinting (https://github.com/narwhals-dev/narwhals/pull/1467)

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

1.15.0

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

1.14.3

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

Page 5 of 26

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.