Changes
✨ Enhancements
- enh: reflect connection time zone in Datetime for pyspark, support convert_time_zone and replace_time_zone (#2592)
- feat: add
to_stringmethod toSparkLikeExprDateTimeNamespace(#1842) - enh: reflect connection time zone in
Datetimefor DuckDB, supportconvert_time_zoneandreplace_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=Trueinteraction (#2606) - fix: Include all backends in
get_native_namespace(#2608) - fix
truncatefor 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_existwhere possible (#2495) - ci: remove outdated cudf xfail (#2612)
- chore: share more
WindowInputscode (#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
broadcastfor 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_compatmodule (#2578) - chore: use
skip-magic-trailing-commaforruff format(#2582) - chore: rename
_inputtoexprin_spark_like,_ibis, and_dask(#2581) - chore: rename
_inputtoexprin_duckdb(#2580) - chore: use
Expressioninstead ofduckdb.Expressionfor typing (#2579)
Thank you to all our contributors for making this release possible!
@Dhanunjaya-Elluri, @EdAbati, @FBruzzesi, @MarcoGorelli and @dangotbanned