Narwhals v1.41.0
Changes
✨ Enhancements
- enh: reflect connection time zone in Datetime for pyspark, support convert_time_zone and replace_time_zone (#2592)
- feat: add
to_string
method toSparkLikeExprDateTimeNamespace
(#1842) - enh: reflect connection time zone in
Datetime
for DuckDB, supportconvert_time_zone
andreplace_time_zone
(#2590) - feat: Kinder order dependence errmsg (#2588)
- enh: support replace_time_zone(None) (#2576)
🐞 Bug fixes
- fix: spark-like
pass_through=True, eager_only=True
interaction (#2606) - fix: Include all backends in
get_native_namespace
(#2608) - fix
truncate
for timezone-aware timestamps for DuckDB (#2577)
📖 Documentation
- docs: Add page on empty aggregations (#2609)
🛠️ Other improvements
- ci: Fix cudf tests again (#2614)
- chore: always use
check_columns_exist
where possible (#2495) - ci: remove outdated cudf xfail (#2612)
- chore: share more
WindowInputs
code (#2600) - ci: fix native namespace test (#2611)
- chore(ruff): Add
tool.ruff.lint.typing-modules
(#2610) - ci: pin modin for now (#2604)
- fix: Fix CI for PySpark 4.0 (#2601)
- chore: simplify
broadcast
for spark-like and ibis (#2595) - ci: fix typing for pyspark 4.0 (#2594)
- chore: Use shorter imports (#2585)
- chore: Use DuckDB 1.3 for typing, remove make typing from
pre-commit
, updateCONTRIBUTING
(#2587) - ci: Use Pyright-cov to enforce 100% type coverage (#2586)
- chore: Add
_typing_compat
module (#2578) - chore: use
skip-magic-trailing-comma
forruff format
(#2582) - chore: rename
_input
toexpr
in_spark_like
,_ibis
, and_dask
(#2581) - chore: rename
_input
toexpr
in_duckdb
(#2580) - chore: use
Expression
instead ofduckdb.Expression
for typing (#2579)
Thank you to all our contributors for making this release possible!
@Dhanunjaya-Elluri, @EdAbati, @FBruzzesi, @MarcoGorelli and @dangotbanned