Skip to content

Releases: narwhals-dev/narwhals

Narwhals v1.8.2

20 Sep 09:17
Compare
Choose a tag to compare

Changes

  • Bug: __getitem__ check for edge cases such as subsetting 0 rows or 0 columns (#994)
  • skip changelog(deps): bump astral-sh/setup-uv from 2 to 3 (#985)
  • [pre-commit.ci] pre-commit autoupdate (#984)
  • [pre-commit.ci] pre-commit autoupdate (#936)
  • Replace assert with raise (#980)

📖 Documentation

  • docs: Restructure docs a bit (#1007)
  • docs: Fix link to how Narwhals works (#996)

🛠️ Other improvements

  • test: convert cuDF numpy types to python types in tests (#987)
  • test: add tests to check case sensitive regex for str.contains (#986)
  • test: xfail case insensitive regex tests for cuDF (#982)

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

Narwhals v1.8.1

15 Sep 13:49
Compare
Choose a tag to compare

Changes

  • Bug: add conversion from slice to array for selecting rows in pyarrow __getitem__ (#978)
  • Debug nightly (#964)

✨ Enhancements

  • feat: add DataFrame.sample method (#975)
  • feat: add seed to Expr|Series.sample (#974)

📖 Documentation

  • doc: Remove unnecessary paragraph in complete_example.md (#969)

🛠️ Other improvements

  • test: remove xfail for cudf_constructor on str_to_uppercase test (#976)
  • chore: some TODO's cleanup (#970)
  • test: xfail cuDF tests that use iteration (#967)
  • ci: fixup nightlies (#966)
  • ci: only run nightlies on pushes to main (#965)
  • ci: enable uv cache, use astral-sh official action (#956)

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

Narwhals v1.8.0

13 Sep 10:55
Compare
Choose a tag to compare

Changes

  • clean: Assorted cleanups (#958)
  • Bug: fix an issue with string keys in left and semi joins in Dask, add Dask to tpch benchmarks (#957)
  • bug: add support for PyArrow: multi-element __getitem__ (#949)

✨ Enhancements

  • feat: Dask multiple partitions (#940)

📖 Documentation

  • docs: update docstring to fix rendering in generated docs (#952)

🛠️ Other improvements

  • test: replace type Any for constructor in all tests (#962)
  • test: replace Any type with pytest.FixtureRequest for request inputs in all tests (#961)
  • test: xfail cuDF tests for join_asof (#959)
  • ci: unxfail some modin tests (#954)
  • test: xfail polars>1.7.0 Expr.mode with broadcast (#953)
  • test: xfail cuDF tests that use total_seconds (#951)

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

Narwhals v1.7.0

11 Sep 13:08
Compare
Choose a tag to compare

Changes

  • support __getitem__ with single tuple of column names (#935)

✨ Enhancements

  • feat: add Series.Scatter (#948)
  • feat: add mode method (#942)
  • feat: join suffix parameter (#934)

🐞 Bug fixes

  • fix: group by no aggregation (#944)
  • fix: Update copy param on to_numpy to default to True for cuDF (#937)

📖 Documentation

  • doc: update docstrings to fix rendering in generated docs (#946)
  • docs: add appears on section with links to relevant podcasts/blogs (#941)
  • docs: fix docstring formatting on maybe_align_index (#938)

🛠️ Other improvements

  • test: xfail to_dummies with drop_first test for cuDF (#945)
  • chore: ban dask filtering with boolean mask (#939)
  • test: always run tpch tests (#933)

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

Narwhals v1.6.4

09 Sep 13:59
Compare
Choose a tag to compare

Changes

✨ Enhancements

  • feat: implement to_arrow for cuDF (#924)
  • feat: add on key to join (#927)

🐞 Bug fixes

  • fix: fix join when using string literals (#930)

📖 Documentation

  • doc: update drop_nulls for series documentation (#928)

🛠️ Other improvements

  • feat: implement to_arrow for cuDF (#924)

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

Narwhals v1.6.3

08 Sep 10:52
Compare
Choose a tag to compare

Changes

  • [pre-commit.ci] pre-commit autoupdate (#818)
  • patch: group by n_unique (#917)

✨ Enhancements

  • feat: add q8 of tpch (#922)
  • feat: enable by argument in join_asof (#921)
  • feat: Add q12, q13, q14, q16, q22 (#910)
  • feat: enable on key in join_asof (#916)
  • feat: Add join_asof support for pandas and dask (#911)
  • feat: dask lit with dtype (#909)
  • feat: Add more queries of tpch (#898)

🐞 Bug fixes

  • fix: Fixes arrow support for df[:, list[int|str]] (#923)

📖 Documentation

  • docs: fix a typo (#925)
  • docs: Recommend uv in contributing guide (#873)

🛠️ Other improvements

  • test: fixup tpch tests (#918)
  • ci: allow pre-releases in nightly uv pip install (#913)
  • test: xfail dt.date tests for cuDF (#912)
  • ci: add tests for the queries of TPC-H (#899)

Thank you to all our contributors for making this release possible!
@AlessandroMiola, @FBruzzesi, @IsaiasGutierrezCruz, @LiamConnors, @MarcoGorelli, @luke396, @pre-commit-ci, @pre-commit-ci[bot], @raisadz and @thomasjpfan

Narwhals v1.6.2

03 Sep 14:19
Compare
Choose a tag to compare

Changes

🐞 Bug fixes

  • fix: compatiblity with Python3.8 for Ibis (#906)
  • fix: use nw.Unknown for unknown dtypes (#904)

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

Narwhals v1.6.1

03 Sep 09:47
Compare
Choose a tag to compare

Changes

  • patch: Improve q10, q11, q2, q3, q4, and q5 queries (#893)
  • patch: api completeness table hotfix (#886)

✨ Enhancements

  • feat: Duckdb interchange (#902)
  • feat: Better ibis interchange (#901)
  • feat: Add q6 of tpch (#894)
  • feat: add q5 implementation (#892)
  • feat: add q4 implementation (#891)
  • feat: Add q3 of tpch (#889)
  • feat: query 11 implementation (#887)

📖 Documentation

  • docs: fix error in write_csv docstring (#895)
  • docs: docstring for concat (#808)
  • docs: Example correction (#888)

🛠️ Other improvements

  • chore: clean up gitignore (#900)
  • test: Test dask with npartitions=2 (#877)
  • chore: run mypy only on narwhals/ and tests/ (#885)
  • bench: port tpc-h q10 (#884)

Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @EdAbati, @FBruzzesi, @LiamConnors, @MarcoGorelli, @Nikoleta-v3, @Sherwin-14, @luke396 and @montanarograziano

Narwhals v1.6.0

30 Aug 13:54
Compare
Choose a tag to compare

Changes

  • patch: Improving typing of stable from_native when 'strict=False' (#875)
  • patch: stableify concat function (#869)

✨ Enhancements

  • feat: dask namespace concat method (#840)
  • feat: support when-then-otherwise for Dask (#868)
  • feat: dask expr cast (#821)
  • feat: add maybe_get_index (#867)

🐞 Bug fixes

  • patch: Fix inconsistent between tying and comments in from_native when 'strict=True' (#865)

📖 Documentation

  • docs: fix relative links in contributing.md (#866)
  • docs: add codespace steps and fork steps to CONTRIBUTING.md (#851)

📦 Build system

  • build: exclude more files (plus some drive-by typing) (#882)

🛠️ Other improvements

  • chore: move tpc-h queries to scripts (#880)
  • chore: Exclude utils/ from build (#879)
  • chore: improve (internal) Dask typing (#874)
  • test: unxfail more modin tests (#871)
  • test: Unxfail 2 modin tests (#870)

Thank you to all our contributors for making this release possible!
@EdAbati, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @anopsy, @benrutter and @luke396

Narwhals v1.5.5

24 Aug 12:31
Compare
Choose a tag to compare

Changes

  • Revert "patch: allow lit to broadcast as left operand" (#858)
  • patch: allow lit to broadcast as left operand (#854)

✨ Enhancements

  • feat: implement when/then/otherwise for PyArrow (#859)
  • feat: add when-then-otherwise expression (#588)
  • feat: use validate_column_comparand in zip_with (#857)
  • feat: make DataFrame.select stricter: non-string columns can only be selected using nw.col (#855)

🛠️ Other improvements

  • chore: simplify arrow (#860)

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