Changes
✨ Enhancements
- feat: improve error message on check_columns_exist (#1799)
- feat: DuckDB
date
(#1798) - feat: DuckDB
dt.to_string
(#1794) - feat: DuckDB
dt.ordinal_day
(#1796) - feat: DuckDB
dt.weekday
(#1795) - feat: add extra overload for concat for when it is not known statically whether inputs are eager or lazy (#1783)
- feat: duckdb replace_all with regex (#1784)
- feat: implement anti-join, str.len_chars, and null_count for DuckDB (#1777)
- feat:
SparkLikeNamespace
methods (#1779) - feat: add
SparkLikeStrNamespace
methods (#1781) - feat: add
all
,any
andnull_count
Spark Expressions (#1724) - feat: add missing dunder methods in
SparkLikeExpr
andSparkLikeNamespace.lit
(#1708) - feat: implement cross-join for duckdb (#1773)
- feat: semi-join for duckdb (#1767)
- feat: implement
n_unique
for DuckDB (#1762) - feat: implement when/then/otherwise for DuckDB (#1759)
- feat: add few missing
SparkLikeExpr
methods (#1721)
🐞 Bug fixes
- fix: to_py_scalar was raising for decimals (#1800)
- fix: fix skew for duckdb with fewer than 3 elements (#1785)
- fix: duckdb join was failing if column names contained spaces (#1775)
- fix: parse_version was not parsing duckdb pre-preleases correctly (#1763)
- fix: update Spark min version in
utils.py
(#1760)
📖 Documentation
- docs: remove docstring examples from narwhals/stable/v1 (#1797)
- docs: Restore API complentess page (#1788)
- docs: Increased width for content (#1769)
- docs: fix
is_between
type hint in signature (#1766)
🛠️ Other improvements
- chore: factor out check_columns_exist (#1792)
- chore: split namespaces out from expr and series (#1782)
- chore: move pyspark tests into main test suite (#1761)
- chore: dask nightly (#1768)
- chore: Remove some unnecessary trailing commas (#1757)
- chore: validate predicates in
nw.when
one level higher (#1756) - chore: remove some expr._kwargs defaults (#1747)
- chore: Filter left join warning (#1753)
Thank you to all our contributors for making this release possible!
@DeaMariaLeon, @Dhanunjaya-Elluri, @EdAbati, @FBruzzesi, @MarcoGorelli, @camriddell, @lucas-nelson-uiuc, @marvinl803 and @raisadz