Releases: narwhals-dev/narwhals
Narwhals v1.11.1
Changes
✨ Enhancements
- feat: add
.select
(by str) for duckdb and ibis backend (#1266) - feat: better error message for duplicate column names in pandas (#1270)
- feat: expose
generate_temporary_column_name
(#1264)
🐞 Bug fixes
- fix: remove _dtype_cache for pandas-like so that inplace modification… (#1268)
- fix: Cudf groupby iter (#1265)
Thank you to all our contributors for making this release possible!
@FBruzzesi and @MarcoGorelli
Narwhals v1.11.0
Changes
🚀 Performance improvements
- perf: improve performance of Series.dtype and DataFrame.schema for pandas-like (#1255)
- perf: avoid redundant copies when resetting index for pandas (#1252)
- perf: always use copy=False when doing rename for pandas (#1247)
- perf: pandas-like fastpath in maybe_reset_index (#1246)
✨ Enhancements
- feat: Add total seconds implementation for cuDF (#1188)
- feat: add drop_null_keys argument to group_by (#1257)
📖 Documentation
- docs: add duckdb to docs (#1261)
- docs: fix parameters table rendering in
quantile
docs (#1251) - docs: zen dedicated doc page (#1243)
- docs: Wimsey added to project list in Readme (#1242)
- docs: DataFrame conversion tutorial (#1240)
🛠️ Other improvements
- test: xfail cudf failures (#1259)
- test: get groupby tests passing for pandas 1.0.x (#1253)
- test: update cudf xfails based on latest version (#1250)
- test: only test dask with partitions=2 for now (#1248)
- ci: add tubular in ci checks (#1211)
- chore: make module versions as constants for use in tests (#1235)
Thank you to all our contributors for making this release possible!
@AlessandroMiola, @FBruzzesi, @LiamConnors, @MarcoGorelli, @benrutter, and @vincentarelbundock
Narwhals v1.10.0
Changes
- bug: fix pyarrow
to_date
(#1216) - simplify marimo in downstream_tests.yml (#1214)
- Simplify return function in
_pandas_like.utils.py
(#1204)
🚀 Performance improvements
- perf: move
maybe_evaluate_expr
out of for loop inreuse_series_implementation
(#1217)
✨ Enhancements
🐞 Bug fixes
- fix: flaky test on polars==0.20.30 (#1231)
- fix: Add df
.rows(named=False)
support for cuDF data frames (#1186)
📖 Documentation
- docs: Pyarrow example docstrings for
Expr
and stable v1 API (#1218) - doc: add note about cuDF tests in contributing guide (#1227)
- docs: update installation.md (#1221)
- docs: move index to start of API reference (#1213)
- doc: Add uv to quick start (#1169)
- docs: Add Pyarrow example to Expr.mean (#1207)
- docs: add 'commotion' to Zen (#1208)
🛠️ Other improvements
- chore: refactor
compare_dicts
(#1224) - chore: series and expr namespaces typing with generics (#1232)
- chore: nox doctests only in Python 3.12 (#1222)
- chore: use constructors (#1210)
- test: xfail iter_rows tests for cudf (#1209)
- chore: tests cleanup and add
from __future__ import annotations
(#1206)
Thank you to all our contributors for making this release possible!
@CarloLepelaars, @DeaMariaLeon, @EdAbati, @FBruzzesi, @LiamConnors, @MarcoGorelli, @artiom-matvei, @luke396, @mscolnick, @raisadz and @schloerke
Narwhals v1.9.4
Changes
✨ Enhancements
- feat: add from_arrow (which uses the PyCapsule Interface) (#1181)
- feat: Add 'IntoSeries' (#991)
- feat: add ConstructorEager type (#1091)
- feat: Adding allow inspecting inner fields of nw.Struct (#1192)
- feat: add The Zen of Narwhals (#1168)
- feat: add
<min|max>_horizontal
(#1148)
🐞 Bug fixes
- fix: add
__native_namespace__
for interchange support dataframes (#1172)
📖 Documentation
- docs: Update CONTRIBUTING.md with Python 3.12 (#1197)
🛠️ Other improvements
- test: update cuDF tests (#1196)
- ci: only check doctests on Python3.12 (#1189)
- ci: add downstream tests for
marimo
(#1166) - chore: Delete tpch/notebooks directory (#1180)
- test: unxfail test_unary for dask (#1174)
- ci: try fixup bump-version.yml (#1171)
- ci: bump version workflow (#1063)
- chore: Use shiny's Makefile to allow for test commands to change over time (#1161)
Thank you to all our contributors for making this release possible!
@AlessandroMiola, @ChinoUkaegbu, @DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @dependabot, @dependabot[bot], @lucianosrp, @luke396, @raisadz and @schloerke
Narwhals v1.9.3
Changes
✨ Enhancements
- enh: Add
.rows(named=False)
support for pyarrow (#1155)
🐞 Bug fixes
- fix: make Series.scatter always return new series (#1159)
📖 Documentation
Thank you to all our contributors for making this release possible!
@AlessandroMiola, @Cheukting, @MarcoGorelli, @akshayka and @schloerke
Narwhals v1.9.2
Changes
🚀 Performance improvements
- perf: Impove
pandas
-backend indexing (#993)
✨ Enhancements
- feat: add dt.replace_time_zone (#1142)
- feat: allow
format=None
instr.to_datetime
(#1145) - feat:
concat_str
(#1128) - feat: allow inspecting the inner type / length of nw.Array (#1136)
🐞 Bug fixes
- fix: when-then-otherwise lit string for arrow backend (#1137)
- fix: pyarrow unpivot upcast numeric (#1140)
- fix: update no_agg to work with cuDF (#1138)
- fix: fixing unnesscary raise of mean_horizontal (#1082)
📖 Documentation
- docs: apply further changes to api reference (#1150)
- docs: add missing methods in api reference (#1144)
- docs: add missing Series str methods in api reference (#1143)
- docs: fix small docs typo (#1141)
🛠️ Other improvements
- test: xfail test_unpivot_mixed_types for cuDF (#1153)
Thank you to all our contributors for making this release possible!
@AlessandroMiola, @Cheukting, @DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @aivanoved, @pre-commit-ci and @pre-commit-ci[bot]
Narwhals v1.9.1
Changes
✨ Enhancements
- feat:
Series.str.to_datetime
(#1131) - feat: make typing available under narwhals.stable.v1 (#1130)
- feat: add
nulls_last
kw in dataframe sort (#1124)
🐞 Bug fixes
- fix: Fix
DataFrame.__getitem__
when slicing with tuple and null slice (#1123)
📖 Documentation
- docs: add Ibis to "related projects" (#1126)
- docs: correct python bytes description (#1115)
- docs: fix some docs issues (#1114)
- docs: assorted docs updates (#1109)
🛠️ Other improvements
- ci: add py-shiny to downstream tests (#1132)
- test: xfail test_actual_object for cuDF (#1129)
- test: xfail tz_aware test for cuDF (#1118)
- test: xfail empty string test in
test_unpivot
(#1113)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @LiamConnors, @MarcoGorelli and @raisadz
Narwhals v1.9.0
Changes
- ci: add name-tests-test to pre-commit (#1093)
✨ Enhancements
- feat: allow inspecting the inner type of List (#1104)
- feat: add
maybe_reset_index
for pandas-like dataframe or series (#1095) - feat:
Datetime(time_unit, time_zone)
andDuration(time_unit)
types (#960) - feat: add dtypes to stable api (#1087)
🐞 Bug fixes
- fix: Specialize typing in
dataframe
betweenFrame
andDataFrame
(#1030) - fix:
PandasLikeSeries.zip_with
scalar value andDaskNamespace.when
(#1099) - fix:
drop_nulls
with subset of length>1 (#1090) - fix: make
narwhalify
part of stable api (#1086)
📖 Documentation
- doc: add pyarrow to DataFrame docstring (#1097)
- docs: Added new logo (#1085)
- docs: add pyarrow to dataframe lazy docstring (#1055)
🛠️ Other improvements
- chore: Refactor validate_column_comparand (#1102)
- test: xfail __iter___test for cuDF (#1106)
- test: update check for cuDF series (#1105)
- test: allow cuDF series in compare_dicts (#1100)
- test:
xfail
test using None onto_numpy
for cuDF (#1092) - chore: rename translate_dtype to native_to_narwhals_dtype (#1089)
Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli, @V-Alizade, @luke396 and @raisadz
Narwhals v1.8.4
Changes
✨ Enhancements
- feat: Initial support for nested dtypes (List, Array, Struct) (#1083)
- feat: add
DataFrame|LazyFrame.unpivot
method (#1043) - feat: add
to_pandas
andto_arrow
for interchange level of support (#1066) - feat: add
series.rename
(#1073) - feat: Adding nth() for selecting columns (#1044)
🐞 Bug fixes
- fix: fixing
nw.all()
doesn't work in sum_horizontal (#1075) - fix: pandas and dask group by
observed=True
(#1079) - fix: add cuDF specific implementation for join how="anti" (#1056)
🛠️ Other improvements
- chore:
get_<dependency>
cleanup (#1074) - ci: Added PR labels so the Release Drafter ignores evil bots (#1069)
- ci: delete all local tags before making release (#1062)
Thank you to all our contributors for making this release possible!
@Cheukting, @DeaMariaLeon, @FBruzzesi, @LiamConnors, @MarcoGorelli and @raisadz
Narwhals v1.8.3
Changes
- [pre-commit.ci] pre-commit autoupdate (#1052)
- Implementing to_native in lazyframe (#1025)
- Add pyarrow to_csv docstring (#1027)
- Extensions page improvement (#1024)
- Only run tests located in the tests directory (#1015)
- add PyArrow usage example in docstrings
DataFrame.columns
(#1010)
🚀 Performance improvements
- test: use pytest-randomly, recommend pytest-xdist in docs (#1019)
- perf: low-hanging overhead (#1034)
✨ Enhancements
- feat: add
Series.__iter__
(#1057) - feat: add
Series.dtype
return annotation (#1049) - feat: improve Series repr (#1038)
- feat: add
str.len_chars
(#1036) - feat: adding to_native to dataframe (#1014)
- feat: adding to_native to Series (#1020)
🐞 Bug fixes
- fix: move
__len__
toDataFrame
only (#1053) - fix: add cuDF specific implementation for join how="anti" (#1041)
- fix: tuple supported for getitem for Pandas dataframes (#1026)
- fix: generate backend table (#1035)
- fix: polars getitem on polars==0.20.30 (#1032)
- fix: package dependency added pyarrow in docs (#1029)
📖 Documentation
- docs: add pyarrow example for dataframe getitem and to_dict (#1033)
- docs: add dtypes check in
utils/check_api_reference.py
(#983) - docs: Add DataFrame.pipe to API completeness table (#1021)
- docs: Update contributing guidelines (#1031)
- docs: Include PyArrow in Tutorial/Series (#1022)
- docs: include PyArrow in Tutorial/DataFrame (#1016)
- docstrings pyarrow support for dataframe.to_pandas() (#1018)
- docs: Add pyarrow example to Installation guide (#1023)
- docs: add pycapsule interface to related projects #1011 (#1017)
🛠️ Other improvements
- fix: add cuDF specific implementation for join how="anti" (#1041)
- test: xfail
test_group_by_n_unique_w_missing
for cuDF (#1039) - test: use pytest-randomly, recommend pytest-xdist in docs (#1019)
- test: add specific check for cuDF for test_to_datetime (#995)
- chore: removing docs/generate_members.py (#1012)
Thank you to all our contributors for making this release possible!
@Cheukting, @Dosenpfand, @FBruzzesi, @HeitCunha, @Jupetus, @LiamConnors, @MarcoGorelli, @MathiasHolmstrom, @Morena1996, @TNieuwdorp, @V-Alizade, @anopsy, @gauthierpiarrette, @jeroenjanssens, @juanchodpg2, @lucianosrp, @mattcristal, @mikeweltevrede, @pre-commit-ci, @pre-commit-ci[bot], @sTomerG, @summerscope and @thomend