Releases: narwhals-dev/narwhals
Narwhals v1.2.0
Changes
🚀 Performance improvements
- perf: only use as_py for pyarrow when necessary (before pyarrow 13) (#724)
✨ Enhancements
- feat: arrow and dask expr
clip
method (#729) - feat: add dask
Expr.std
(#734) - feat: support reductions in lazyframe.select for Dask (#723)
- feat: DaskLazyFrame
unique
method (#726) - feat: DaskLazyFrame
join
andsort
, DaskNamespaceall
(#725) - feat: add
group_by
to dask (#718) - feat: add series and expr
clip
method (#701) - feat: Add
Expr.round
to Dask (#709) - feat: add
strip_chars
to string namespace (#715) - feat:
ArrowGroupBy.__iter__
method (#717) - feat: arrow expr
over
method (#721) - feat: dask
with_row_index
andrename
(#692) - feat: dask equality and inequality operators (#708)
- feat: add
round
to Arrow (#696) - feat: dask
any_horizontal
and generalizeall_horizontal
(#693) - feat: Dask frame
drop
method (#699) - feat: dask
schema
andcollect_schema
(#688) - feat: add dask
Expr.max
and test (#691) - feat: add dask
Expr.min
and test (#690)
🐞 Bug fixes
- patch: pandas-like and pyarrow scalar reduction fix (#716)
📖 Documentation
- docs: how it works bulletpoint indentation (#719)
- docs: Fix how-it-works, add favicon+logo (#710)
- docs: correction of
how_it_works.md
(#707) - docs: Contributing guide correction (#706)
- docs: fix todo, avoid lazyframe collect_schema warning (#687)
- docs: explain translation from narwhals api to native api (#684)
🛠️ Other improvements
- ci: fix import error from dask test (#737)
- ci: fix ci from pytest importerror (#736)
- test: improve coverage for
from_native
(dask) (#733) - test: toggle coverage for dask group_by (#732)
- chore: Factor all remaining tests out of
test_common.py
(#720) - chore: remove dask_test completely (#705)
- chore: moving most dask tests over to the main test suite (#703)
- test: mark failing dask tests, add dask to constructor (#697)
Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @aivanoved, @amol-, @anopsy, @condekind, @lucianosrp, @mfonekpo and @mistShard
Narwhals v1.1.9
Changes
🚀 Performance improvements
- perf: some comprehensions over loops (#679)
✨ Enhancements
- feat: add
fill_null
toDaskExpr
(#685) - feat: add
drop_nulls
for dask (#675) - feat: dask
columns
property &filter
method (#670) - feat: dask
select
method (#667) - feat: add year, month, day, hour, minute, second, millisecond, micros… (#666)
- feat: add
to_lowercase
,to_uppercase
,to_datetime
for dask (#665) - feat: add
ends_with
,contains
,slice
for dask (#664) - feat: Added Dask
Expr.sum
(#662)
🐞 Bug fixes
- fix: dask expr
dt.nanosecond
implementation (#678)
📖 Documentation
- doc: Made changes to the file explaining the
UserWarning
error while using pandas `group_by's (#677)
🛠️ Other improvements
- tests: add pytest-env to dev requirements (#683)
- ci: adopt uv (#682)
- chore: factor
system_info
tests outsidetest_common
(#680) - test: xfail uppecase for dask and pyarrow 11.0.0 (#672)
- chore: enable more lazy tests (#663)
Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @EdAbati, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @benrutter, @lucianosrp, @mistShard and @montanarograziano
Narwhals v1.1.8
Changes
- skip changelog(deps): bump sigstore/gh-action-sigstore-python from 2.1.1 to 3.0.0 (#634)
- skip changelog(deps): bump actions/setup-python from 4 to 5 (#633)
- removed utils/check_backend_completeness.py (#628)
🚀 Performance improvements
- perf: optimizing arrow to_dummies (#627)
✨ Enhancements
- feat: add collect for dask (#651)
- feat: added dask
Expr.__sub__
(#643) - feat: add
starts_with
for dask (#648) - feat: add
is_between
for dask (#642) - feat: added dask
Expr.__mul__
and test cases (#644) - feat: add cum_sum for dask (#641)
- feat: add shift for Dask Dataframe (#638)
- feat: Add initial (and very minimal) support for Dask.DataFrame (#635)
🐞 Bug fixes
🛠️ Other improvements
- chore: remove some pyarrow xfails from tests, further split up (#660)
- chore: enable more lazy tests (#658)
- chore: factor
test_std
outsidetest_common
(#657) - chore: enable more lazy tests (#656)
- chore: rename constructor -> constructor_eager, constructor_lazy -> constructor (#654)
- chore: factor
test_schema
andtest_collect_schema
out oftest_common
(#655) - chore: More lazy vs eager separation (#653)
- chore: split eager-only and eager+lazy tests a bit (#652)
- chore: use constructor instead of constructor_series in tests more (#650)
- chore: replace constructor_series with constructor (#649)
- chore: replace constructor_with_series with constructor in gather_every_test (#646)
- ci: Add dependabot (#632)
- chore: allow unknown/extension namespaces for
from_dict
function (#626)
Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @FBruzzesi, @MarcoGorelli, @aidoskanapyanov, @anopsy, @dependabot, @dependabot[bot], @montanarograziano and @ugohuche
Narwhals v1.1.7
Changes
✨ Enhancements
- feat:
gather_every
methods (#619) - feat: raise informative error if getitem is used in unsupported manner (#624)
- feat: allow slicing by tuple of sequences of ints (#622)
- feat: arrow datetime namespace (#616)
📖 Documentation
- docs: replace
df_any
/s_any
withdf
/s
(#621)
🛠️ Other improvements
- chore: factor
test_empty_select
out oftest_common
(to existingselect_test.py
) (#617) - ci: improve release process (#615)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @aidoskanapyanov and @condekind
Narwhals v1.1.6
Changes
- cleaning: remove series.is_between from backend completness (#612)
🚀 Performance improvements
- perf: remove as_py from _arrow implementation wherever possible (#597)
✨ Enhancements
- feat : added arrow
is_between
andis_between_test.py
(#609) - feat: add
schema
argument tofrom_dict
function (#606) - feat:
any_horizontal
function (#605) - feat: add from_dict (#602)
- feat: arrow namespace reduction functions (#601)
- feat: arrow
quantile
method (#600) - feat: pyarrow dataframe
iter_rows
(#596) - feat:
Series.value_count
spec enhancement (#583) - feat: allow non-string columns names more for pandas (#595)
- feat: add
nulls_last
argument inSeries/Expr.sort
(#580)
🐞 Bug fixes
- fix: correct Polars version check for pl.len function (#607)
📖 Documentation
- docs: fix typo in README, update roadmap + related projects (#613)
- docs: document PyArrow as "full" support (#604)
🛠️ Other improvements
- chore: extend
Implementation
for all backends (#608) - chore: remove some unnecessary flattens (#599)
- chore: reoder definitions in from_native (#598)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @aidoskanapyanov and @anopsy
Narwhals v1.1.5
Changes
🚀 Performance improvements
- perf: fastpath for simple select in pandas-like (#587)
🛠️ Other improvements
- chore: factor
drop_test
out oftest_common
(#586) - chore: factor
concat_test
out oftest_common
(#585) - chore: factor
item_test
out oftest_common
(#584) - ci: add polars specifier to ibis-framework dependency (#591)
- ci: fix hypothesis failure, remove ibis from tests (#592)
Thank you to all our contributors for making this release possible!
@MarcoGorelli and @aidoskanapyanov
Narwhals v1.1.4
Changes
- Add additional sponsors and institutional partners to README (#573)
- bug: fix
Series.__getitem__
typing (#569)
✨ Enhancements
- feat:
Series.to_dummies
, arrowsort
andunique
(#577) - feat: add arrow value_counts (#576)
- feat: add Series.drop nulls for pyarrow (#542)
- feat: pyarrow series descriptive methods (#570)
- feat: add DataFrame__contains__, Expr.arg_true, and Series.arg_true (#568)
📖 Documentation
- docs: api completeness (#530)
Thank you to all our contributors for making this release possible!
@EdAbati, @FBruzzesi, @InessaPawson, @MarcoGorelli, @anopsy and @mfonekpo
Narwhals v1.1.3
Changes
✨ Enhancements
- feat: Implement n_unique for pyarrow (#556)
- feat:
ExprNameNamespace
(#552) - feat: arrow
unique
,is_duplicated
,is_unique
(#565) - feat: implement truediv for pyarrow (#564)
- feat: add
__floordiv__
and__rfloordiv__
for pyarrow (#544) - feat: arrow selectors (#562)
- feat: arrow string namespace(s) (#551)
- feat: arrow join methods (#558)
📖 Documentation
- docs: docstrings narwhalify-cation (#559)
- docs: reword "related projects" section, remove all Ibis comparisons (#563)
🛠️ Other improvements
- chore: Factor out _polars from top-level Narwhals modules (i.e.: the mother of all refactors!) (#561)
- chore: rename internal extract_native function (#560)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @lucianosrp and @mistShard
Narwhals v1.1.2
Changes
- added arrow is_in, changed the names of test folders (#545)
✨ Enhancements
📖 Documentation
🛠️ Other improvements
- chore: refactor agg_arrow (#549)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli and @anopsy
Narwhals v1.1.1
Changes
✨ Enhancements
- feat: allow nw.len in groupby for arrow (#540)
- feat: add len to pyarrow series and expr (#538)
- feat:
ArrowExprCatNamespace
(#536) - feat: add
is_null
and__invert__
to pyarrow series (#534) - enh: ruff S rule fix (#526)
- feat: implement Series.sum for pyarrow (#495)
- feat: pyarrow
concat
(#525) - feat: pyarrow
lit
(#524)
📖 Documentation
- ci: fix exception in code snippet, add check to CI (#532)
🛠️ Other improvements
- ci: actually use pandas nightly in pandas-nightly build (#539)
- ci: remove [dev] from sklego install (#535)
- chore: ruff rules (#527)
- ci: add downstream tests for altair + scikit-lego (#533)
- ci: fix exception in code snippet, add check to CI (#532)
- test: conftest constructors refactoring (#515)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @anopsy, @lucianosrp and @mfonekpo