Releases: narwhals-dev/narwhals
Narwhals v1.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
inPandasLikeExpr
(#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
inPandasSeries
(#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
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
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
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
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 inewm_mean
for cuDF (#1449) - feat: silently support Fireducks and cudf.pandas (#1439)
- feat: improve
concat
error message andconcat
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
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
inDataFrame.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
Thank you to all our contributors for making this release possible!
@CarloLepelaars, @DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @gvwilson, @marenwestermann and @raisadz
Narwhals v1.14.1
Changes
✨ Enhancements
🐞 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
Changes
✨ Enhancements
- feat: add
Series|Expr.is_finite
method (#1341) - feat: make exceptions module public (#1391)
- feat: consistently raise
ColumnNotFoundError
for missing columns inselect
anddrop
(#1389) - feat: add
Series|Expr.cum_prod
method, addreverse
kw incum_sum
method (#1386) - feat: add
Series|Expr
cum_min
andcum_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 mentionnw.lit
(#1393) - chore: Consistent invalid
IntoExpr
error (#1379) - feat: consistently raise
ColumnNotFoundError
for missing columns inselect
anddrop
(#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
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
Narwhals v1.13.4
Changes
🚀 Performance improvements
- perf: Prefer getitem instead of loc for selecting multiple columns in pandas-like (#1355)
- perf: replace loc with getitem in Dask (#1356)
✨ Enhancements
- feat: support passing index object directly into maybe_set_index (#1319)
- feat: add more parameters to the fill_null method (#1149)
- feat: Adding support for Expr.map_batches (#1269)
- feat: pyarrow automated inference of format
%Y%m%d%H%M%S
(#1326) - feat: add support for
median
(#1212) - feat: allow mapping in
replace_strict
method (#1340)
🐞 Bug fixes
📖 Documentation
- docs: used by
tabmat
(#1339)
🛠️ Other improvements
- test: fix docstrings tests in CI (#1354)
- test: remove cuDF xfail for tests/series_only/to_list_test.py::test_to_list (#1353)
- chore: Rename some internals (#1351)
- ci: remove dask from tpch tests (#1348)
- ci: pin websockets, fixup 3.13 doctests, remove unnecessary xfail (#1343)
- test: Add a hypothesis test for getitem (#1098)
Thank you to all our contributors for making this release possible!
@AlessandroMiola, @DeaMariaLeon, @FBruzzesi, @IsaiasGutierrezCruz, @MarcoGorelli, @Riik, @raisadz and @sjdenny