This release brings HTML reprs to the documentation, fixes to flexible Xarray indexes, performance optimizations, more ergonomic seasonal grouping and resampling
with new SeasonGrouper and SeasonResampler objects, and bugfixes.
Thanks to the 33 contributors to this release:
Andrecho, Antoine Gibek, Benoit Bovy, Brian Michell, Christine P. Chai, David Huard, Davis Bennett, Deepak Cherian, Dimitri Papadopoulos Orfanos, Elliott Sales de Andrade, Erik, Erik Månsson, Giacomo Caria, Ilan Gold, Illviljan, Jesse Rusak, Jonathan Neuhauser, Justus Magin, Kai Mühlbauer, Kimoon Han, Konstantin Ntokas, Mark Harfouche, Michael Niklas, Nick Hodgskin, Niko Sirmpilatze, Pascal Bourgault, Scott Henderson, Simon Perkins, Spencer Clark, Tom Vo, Trevor James Smith, joseph nowak and micguerr-bopen
What's Changed
- Add
xarray-lmfit
extension for curve fitting to ecosystem documentation by @kmnhan in #10262 - Rename Twitter to X by @star1327p in #10283
- Add public typing.py module by @micguerr-bopen in #10215
- Adding xarray-eopf to ecosystem.rst by @konstntokas in #10289
- Add redirect for contributing guide by @scottyhq in #10282
- Add Index.should_add_coord_to_array by @benbovy in #10137
- Fix for scalar detection by @huard in #8821
- DOC: Remove reference to
absolufy-imports
from contributing guide by @VeckoTheGecko in #10290 - Do not rely on np.broadcast_to to perform trivial dimension insertion by @hmaarrfk in #10277
- (fix): remove
PandasExtensionArray
from repr by @ilan-gold in #10291 - Add SeasonGrouper, SeasonResampler by @dcherian in #9524
- dev whats-new by @dcherian in #10294
- Add back getattr for ExtensionArrays by @dcherian in #10278
- (fix): allow upcasting of nans in
as_shared_dtype
for extension arrays by @ilan-gold in #10292 - Fix BinGrouper when labels is not specified by @dcherian in #10295
- (fix): numeric
arrow
dtype deep copies by @ilan-gold in #10315 - Fix rolling mean on bool arrays by @gcaria in #10319
- Alignment of n-dimensional indexes with partially excluded dims by @benbovy in #10293
- FIX: prevent unnecessary type casts in rolling mean by @kmuehlbauer in #10341
- Remove
"Y"
and"M"
fromDatetimeUnitOptions
by @spencerkclark in #10306 - fix roundtripping zero-size timedelta arrays by @kmuehlbauer in #10313
- Implement literal
np.timedelta64
coding by @spencerkclark in #10101 - Set
.conjugate
as alias of.conj
, #10302 by @joneuhauser in #10303 - Fix setuptools deprecation warnings by @gcaria in #10300
- The URL in CONTRIBUTING.md was broken and didn't automatically redirect. by @erik-mansson in #10351
- Disallow standard calendar
np.datetime64
encoding prior to reform by @spencerkclark in #10352 - Docs: User Guide for Complex Numbers by @andrewendlinger in #10235
- Avoid copying vectorized indexes by @jder in #10316
- apply_ufunc: don't modify attrs on input variables by @erik-mansson in #10330
- ruff: default rule set by @DimitriPapadopoulos in #10360
- Fix "a array" misspelling by @DimitriPapadopoulos in #10365
- Apply assorted ruff/flake8-pytest-style rules (PT) by @DimitriPapadopoulos in #10363
- Apply assorted ruff/flake8-simplify rules (SIM) by @DimitriPapadopoulos in #10364
- Ignore ruff/Pyflakes rule F401 more precisely by @DimitriPapadopoulos in #10369
- Enforce ruff/refurb rules (FURB) by @DimitriPapadopoulos in #10367
- Enforce ruff/flake8-implicit-str-concat rules (ISC) by @DimitriPapadopoulos in #10368
- (fix): pandas extension array repr for int64[pyarrow] by @ilan-gold in #10317
- Apply assorted ruff/Pylint rules (PL) / Enforce PLE rules by @DimitriPapadopoulos in #10366
- Enforce ruff/flake8-pyi rules (PYI) by @DimitriPapadopoulos in #10359
- Implement cftime vectorization as discussed in PR #8322 by @antscloud in #8324
- Fix doc typo for caption "Interoperability" by @tomvothecoder in #10374
- use numpy dtype exposed by zarr array instead of metadata.data_type by @d-v-b in #10348
- Pin Mypy to 1.15 by @kmuehlbauer in #10378
- Improve html repr in dark mode (Jupyterlab + Xarray docs) by @benbovy in #10353
- Add missing AbstractWritableDataStore base methods and arguments by @sjperkins in #10343
- Enforce ruff/flynt rules (FLY) by @DimitriPapadopoulos in #10375
- Docs: Add links to getting help mermaid diagram by @scottyhq in #10324
- Grouper tweaks. by @dcherian in #10362
- html repr: improve style for dropdown sections by @benbovy in #10354
- Fix performance regression in interp from #9881 by @dcherian in #10370
- Avoid unsafe casts from float to unsigned int by @QuLogic in #9964
- DOC: Update link to Cartopy reference by @star1327p in #10386
- Update a link in ROMS_ocean_model.ipynb by @star1327p in #10394
- Automatic Dask-Zarr chunk alignment by @josephnowak in #10336
- added movement to Xarray related projects by @niksirbi in #10403
- Update concat for multi-variable indexes. by @dcherian in #10371
- Switch docs to jupyter-execute sphinx extension for HTML reprs by @scottyhq in #10383
- Adds chunk key encoding to kwargs passed to zarr by @BrianMichell in #10274
- Release v2025.06.0 by @dcherian in #10406
New Contributors
- @kmnhan made their first contribution in #10262
- @star1327p made their first contribution in #10283
- @micguerr-bopen made their first contribution in #10215
- @konstntokas made their first contribution in #10289
- @joneuhauser made their first contribution in #10303
- @erik-mansson made their first contribution in #10351
- @jder made their first contribution in #10316
- @sjperkins made their first contribution in #10343
- @niksirbi made their first contribution in #10403
- @BrianMichell made their first contribution in #10274
Full Changelog: v2025.04.0...v2025.06.0