This release brings tested support for Python 3.13, support for reading Zarr V3 datasets into a :py:class:~xarray.DataTree
,
significant improvements to datetime & timedelta encoding/decoding, and improvements to the :py:class:~xarray.DataTree
API;
in addition to the usual bug fixes and other improvements.
Thanks to the 26 contributors to this release:
Alfonso Ladino, Benoit Bovy, Chuck Daniels, Deepak Cherian, Eni, Florian Jetter, Ian Hunt-Isaak, Jan, Joe Hamman, Josh Kihm, Julia Signell, Justus Magin, Kai Mühlbauer, Kobe Vandelanotte, Mathias Hauser, Max Jones, Maximilian Roos, Oliver Watt-Meyer, Sam Levang, Sander van Rijn, Spencer Clark, Stephan Hoyer, Tom Nicholas, Tom White, Vecko and maddogghoek
What's Changed
- add new section in whats-new.rst by @kmuehlbauer in #10011
- spelling fix: possibilites -> possibilities by @shoyer in #10023
- Duck array ops for
all
andany
by @tomwhite in #9883 map_over_datasets
: fix error message for wrong result type by @mathause in #10016- Use resolution-dependent default units for lazy time encoding by @spencerkclark in #10017
- DOC: Fix 404 on Cubed's documentation by @VeckoTheGecko in #10029
- use mean of min/max years as offset in calculation of datetime64 mean by @kmuehlbauer in #10035
- Fix dataarray drop attrs by @j-haacker in #10030
- Start splitting up
dataset.py
by @max-sixty in #10039 - Upgrade mypy to 1.15 by @max-sixty in #10041
- implement map_over_datasets kwargs by @kmuehlbauer in #10012
- run CI on
python=3.13
by @keewis in #9681 - Add
Coordinates.from_xindex
method (+ refactor API doc) by @benbovy in #10000 - Add types stubs to optional dependencies by @max-sixty in #10048
- Flexible coordinate transform by @benbovy in #9543
- More precisely type
pipe
methods by @chuckwondo in #10038 - Default to phony_dims="access" in h5netcdf-backend by @kmuehlbauer in #10058
- More permissive Index typing by @benbovy in #10067
- Restrict fastpath isel indexes to the case of all PandasIndex by @benbovy in #10066
- deprecate cftime_range() in favor of date_range(use_cftime=True) by @Maddogghoek in #10024
- Generalize lazy backend indexing a little more by @dcherian in #10078
- Another reduction in the size of
dataset.py
by @max-sixty in #10088 - Prune data tree for Isomorphic operations by @kobebryant432 in #10097
- Skip failing array api test. by @dcherian in #10102
- Pass node path to tokenize in
open_datatree
by @slevang in #10100 - Fix false timedelta decoding
SerializationWarning
and improve warning message by @spencerkclark in #10072 - Add typos check to pre-commit hooks by @max-sixty in #10040
- Ensure KeyError raised for zarr datasets missing dim names by @oliverwm1 in #10025
- Improve handling of dtype and NaT when encoding/decoding masked and packaged datetimes and timedeltas by @kmuehlbauer in #10050
- fix and supress some test warnings by @mathause in #10104
- Update asv badge url in README.md by @sjvrijn in #10113
- Fix broken Zarr test by @dcherian in #10109
- Pin pandas stubs by @jsignell in #10119
- Use
to_numpy
in time decoding by @dcherian in #10081 - explicitly cast the dtype of
where
's condition parameter tobool
by @keewis in #10087 - Better
uv
compatibility by @max-sixty in #10124 - Change
python_files
inpyproject.toml
to a list by @max-sixty in #10127 - Don't skip tests when on a
mypy
branch by @max-sixty in #10129 - Fix type issues from pandas stubs by @max-sixty in #10128
- Refactor compatibility modules into xarray.compat package by @max-sixty in #10131
- Refactor modules from
core
intoxarray.computation
by @max-sixty in #10132 - Split
apply_ufunc
out ofcomputation.py
by @max-sixty in #10133 - Refactor concat / combine / merge into
xarray/structure
by @max-sixty in #10134 - Fix test_distributed::test_async by @fjetter in #10138
- Refactor datetime and timedelta encoding for increased robustness by @spencerkclark in #9498
- [docs]
DataTree
cannot be constructed fromDataArray
by @mathause in #10142 - Fix
open_datatree
whendecode_cf=False
by @ianhi in #10141 - Fix version in requires_zarr_v3 fixture by @TomNicholas in #10145
- Adds open_datatree and load_datatree to the tutorial module by @eni-awowale in #10082
- Update flaky pydap test by @dcherian in #10149
- Use flox for grouped first, last. by @dcherian in #10148
- Refactor calendar fixtures by @dcherian in #10150
- Refactoring/fixing zarr-pyhton v3 incompatibilities in xarray datatrees by @aladinor in #10020
- Release 2025.03.0 by @dcherian in #10143
New Contributors
- @j-haacker made their first contribution in #10030
- @chuckwondo made their first contribution in #10038
- @Maddogghoek made their first contribution in #10024
- @kobebryant432 made their first contribution in #10097
- @oliverwm1 made their first contribution in #10025
- @ianhi made their first contribution in #10141
Full Changelog: v2025.01.2...v2025.03.0