Releases: pydata/xarray
v2024.10.0
This release brings official support for xarray.DataTree
, and compatibility with zarr-python v3!
Aside from these two huge features, it also improves support for vectorised interpolation and fixes various bugs.
Thanks to the 31 contributors to this release:
Alfonso Ladino, DWesl, Deepak Cherian, Eni, Etienne Schalk, Holly Mandel, Ilan Gold, Illviljan, Joe Hamman, Justus Magin, Kai Mühlbauer, Karl Krauth, Mark Harfouche, Martey Dodoo, Matt Savoie, Maximilian Roos, Patrick Hoefler, Peter Hill, Renat Sibgatulin, Ryan Abernathey, Spencer Clark, Stephan Hoyer, Tom Augspurger, Tom Nicholas, Vecko, Virgile Andreani, Yvonne Fröhlich, carschandler, joseph nowak, mgunyho and owenlittlejohns
What's Changed
- New whatsnew section by @owenlittlejohns in #9483
- Update pyproject.toml by @TomAugspurger in #9484
open_groups
for zarr backends by @eni-awowale in #9469- Ensure TreeNode doesn't copy in-place by @TomNicholas in #9482
- Make illegal path-like variable names when constructing a DataTree from a Dataset by @etienneschalk in #9378
- DAS-2155 - Merge datatree documentation into main docs. by @owenlittlejohns in #9033
- Forbid modifying names of DataTree objects with parents by @shoyer in #9494
- Fixed formatting for whats-new.rst and added line for
open_groups
with zarr backends. by @eni-awowale in #9493 - Opt out of floor division for float dtype time encoding by @spencerkclark in #9497
- Stateful test: silence DeprecationWarning from drop_dims by @dcherian in #9508
- Turn off survey banner by @jhamman in #9512
- flox: don't set fill_value where possible by @dcherian in #9433
- Fix pandas datetime decoding with NumPy >= 2.0 for small integer dtypes by @spencerkclark in #9518
- Datatree setitem dataset by @TomNicholas in #9516
- Repo review bugbear by @Armavica in #9505
- Make _replace more lenient. by @dcherian in #9517
- Update
compat
error checking to disallow "minimal" inconcat()
by @VeckoTheGecko in #9525 - (fix):
ExtensionArray
+DataArray
roundtrip by @ilan-gold in #9520 - Improve safe chunk validation by @josephnowak in #9527
- Fix DataTree repr to not repeat inherited coordinates by @shoyer in #9532
- cast
numpy
scalars to arrays inas_compatible_data
by @keewis in #9403 - Add
.rolling_exp
onto.rolling
's 'See also' by @max-sixty in #9534 - Update array signatures with copy by @Illviljan in #9529
- Support vectorized interpolation with more scipy interpolators by @hollymandel in #9526
- Add yet an other CI for numpy 2.1 by @hmaarrfk in #9540
- Update donation links by @martey in #9549
- Remove duplicate coordinates with indexes on sub-trees by @shoyer in #9531
- Typos in pandas.rst by @carschandler in #9551
- Fix NamedArray html repr crashing by @Illviljan in #9553
- allow using
__array_function__
as a fallback for missing Array API functions by @keewis in #9530 - Revert "Improve safe chunk validation" by @shoyer in #9558
- Improve safe chunk validation by @josephnowak in #9559
- DOC/ecosystem: Fix tiny typo by @yvonnefroehlich in #9562
- bump
scientific-python/upload-nightly-action
by @keewis in #9566 - towards new h5netcdf/netcdf4 features by @kmuehlbauer in #9509
- Add missing space between sentences in error message by @shoyer in #9563
- Remove superfluous lines from pyright config by @max-sixty in #9569
- Adjust pip extra dependencies by @max-sixty in #9571
- Add numba constraint by @max-sixty in #9572
- Add
.cumulative
tocumsum
&cumprod
docstrings by @max-sixty in #9533 - Remove unneeded indentation by @max-sixty in #9574
- Disable pyright config? by @max-sixty in #9570
- Stop inheriting non-indexed coordinates for DataTree by @shoyer in #9555
- passing missing arguments when opening zarr, hdf5 and netcdft4 datatrees by @aladinor in #9428
- Remove unvetted DataTree methods by @shoyer in #9585
- Remove out of date comment on DataTree inheritance by @shoyer in #9592
- Add support for coordinate inputs in polyfit. by @Karl-Krauth in #9369
- Implement DataTree.isel and DataTree.sel by @shoyer in #9588
- Datatree deduplicate setitem by @TomNicholas in #9602
- Reimplement DataTree aggregations by @shoyer in #9589
- updating group type annotation for netcdf, hdf5, and zarr open_datatree function by @aladinor in #9614
- Rename inherited -> inherit in DataTree.to_dataset by @shoyer in #9615
- Datatree alignment docs by @TomNicholas in #9501
- pin mypy to 1.11.2 by @kmuehlbauer in #9621
- map_over_subtree -> map_over_datasets by @TomNicholas in #9622
- Reimplement Datatree typed ops by @TomNicholas in #9619
- Migration guide for users of old datatree repo by @TomNicholas in #9598
- docs(groupby): mention deprecation of
squeeze
kwarg by @Sibgatulin in #9625 - Add inherit=False option to DataTree.copy() by @shoyer in #9628
- Bug fixes for DataTree indexing and aggregation by @shoyer in #9626
- Add missing
memo
argument to DataTree.deepcopy by @shoyer in #9631 - Type check datatree tests by @TomNicholas in #9632
- Add zip_subtrees for paired iteration over DataTrees by @shoyer in #9623
- DOC: Clarify error message in open_dataarray by @DWesl in #9637
- Updates to DataTree.equals and DataTree.identical by @shoyer in #9627
- Support alternative names for the root node in DataTree.from_dict by @shoyer in #9638
- Fix error and missing code cell in io.rst by @kmuehlbauer in #9641
- Replace black and blackdoc with ruff-format by @Armavica in #9506
- fix zarr intersphinx by @shoyer in #9652
- Re-implement map_over_datasets using group_subtrees by @shoyer in #9636
- Update Datatree html repr to indicate inheritance by @TomNicholas in #9633
- flox: Properly propagate multiindex by @dcherian in #9649
- Fix multiple grouping with missing groups by @dcherian in #9650
- Change URL for pydap test by @dcherian in #9655
- Add close() method to DataTree and use it to clean-up open files in tests by @shoyer in #9651
- Reduce graph size through writing indexes directly into graph for
map_blocks
by @phofl in #9658 - Update to_dataframe doc to match current behavior by @mgunyho in #9662
- Compatibility for zarr-python 3.x by @TomAugspurger in #9552
- support
chunks
inopen_groups
andopen_datatree
by @keewis in #9660 - implement
dask
methods onDataTree
by @keewis in #9670 - fix(zarr): use inplace array.resize for zarr 2 and 3 by @jhamman in #9673
- Use zarr v3 dimension_names by @rabernat in #9669
- fixing behaviour for group parameter in
open_datatree
by @aladinor in #9666 - drop the length from
numpy
's fixed-width string dtypes by @keewis in #9586 - v2024.10.0 release summary by @TomNicholas in #9678
New Contributors
- @VeckoTheGecko made their first contribution in #9525
- @martey made their first contribution in https://github.com/pydata/...
v2024.09.0
This release drops support for Python 3.9, and adds support for grouping by multiple arrays, while providing numerous performance improvements and bug fixes.
Thanks to the 33 contributors to this release:
Alfonso Ladino, Andrew Scherer, Anurag Nayak, David Hoese, Deepak Cherian, Diogo Teles Sant'Anna, Dom, Elliott Sales de Andrade, Eni, Holly Mandel, Illviljan, Jack Kelly, Julius Busecke, Justus Magin, Kai Mühlbauer, Manish Kumar Gupta, Matt Savoie, Maximilian Roos, Michele Claus, Miguel Jimenez, Niclas Rieger, Pascal Bourgault, Philip Chmielowiec, Spencer Clark, Stephan Hoyer, Tao Xin, Tiago Sanona, TimothyCera-NOAA, Tom Nicholas, Tom White, Virgile Andreani, oliverhiggs and tiago
What's Changed
- post-release cleanup by @keewis in #9290
- Fix
DataTree.from_dict
to be insensitive to insertion order by @TomNicholas in #9292 - Increased verbosity for Value Error raised if backend not installed by @jbusecke in #9294
- DOC: Add note to docs on DataTree root-group naming conventions by @kmuehlbauer in #9298
- DOC: fix minimum dependency versions in getting started guide by @kmuehlbauer in #9306
- Add grib2io to ecosystem.rst by @TimothyCera-NOAA in #9304
- added kerchunk as backend documentation by @Anu-Ra-g in #9163
- cftime: Fix resampling when time contains
0001-01-01
by @dcherian in #9116 - Add missing spacing in documentation by @domdent in #9318
- Use assert_duckarray_allclose instead of rounding the array by @Illviljan in #9313
- Fix some dask tests by @dcherian in #9321
- Verbose error handling for non-valid duckarrays by @Illviljan in #9314
- Fix pirate arrgragation by @clausmichele in #9328
- Remove ignores due to pandas-stubs by @Illviljan in #9329
- Use duck array ops for
around
andround
by @tomwhite in #9326 - fix: github workflow vulnerable to script injection by @diogoteles08 in #9331
- xfail np.cross tests; force numpy>=2 in main CI by @dcherian in #9356
- try to fix scheduled hypothesis test by @dcherian in #9358
- Revise by @Tao-VanJS in #9357
- drop support for
python=3.9
by @keewis in #8937 - whats-new entry for dropping python 3.9 by @keewis in #9359
- Fix rechunking to a frequency with empty bins. by @dcherian in #9364
- Revise by @Tao-VanJS in #9366
- Adding open_groups to BackendEntryPointEngine, NetCDF4BackendEntrypoint, and H5netcdfBackendEntrypoint by @eni-awowale in #9243
- Remove duplicate word from docs by @JackKelly in #9367
- Revise by @Tao-VanJS in #9371
- Make chunk manager an option in
set_options
by @tomwhite in #9362 - Add flaky to TestNetCDF4ViaDaskData by @Illviljan in #9373
- Improve error message for missing coordinate index by @nicrie in #9370
- Improve error message on
ds['x', 'y']
by @max-sixty in #9375 - Fix tests on big-endian systems by @QuLogic in #9380
- passing missing parameters to ZarrStore.open_store when opening a datatree by @aladinor in #9377
- Combine
UnsignedIntegerCoder
andCFMaskCoder
by @djhoese in #9274 - refactor GroupBy internals by @dcherian in #9389
- Extend padding functionalities by @tsanona in #9353
- pyarrow dependency added to doc environment by @hollymandel in #9394
numpy 2
compatibility in thepydap
backend by @Mikejmnez in #9391- Adds copy parameter to array for numpy 2.0 by @andrew-s28 in #9393
- Encode/decode property tests use variables() by @dcherian in #9401
- GroupBy(multiple groupers) by @dcherian in #9372
- Use
python-build
instead ofbuild
in benchmark workflow by @philipc2 in #9406 - fix the failing
pre-commit.ci
runs by @keewis in #9411 - [skip-ci] Speed up docs build by limiting toctrees by @dcherian in #9395
- Accessibility: Add keyboard handling for XArray HTML view by @srijan55 in #9412
- Don't specify a subdir in mypy CI cli by @max-sixty in #9416
- Upgrade mypy to 1.11 by @max-sixty in #9417
- Use EllipsisType by @max-sixty in #9418
- Byte attr support by @hollymandel in #9407
- copy the data of the
DatetimeIndex
in theDataset.chunk
-by-frequency tests by @keewis in #9419 - Don't return IndexVariable with .dt accessor by @dcherian in #9415
- GroupBy(multiple strings) by @dcherian in #9414
- Avoid deep-copy when constructing groupby codes by @dcherian in #9429
- Always include at least one category in random test data by @shoyer in #9436
- Bump minimum versions for dependencies by @dcherian in #9434
- Shallow copy parent and children in DataTree constructor by @TomNicholas in #9297
- Support additional dtypes in
resample
by @oliverhiggs in #9413 - Disallow passing a DataArray as data into the DataTree constructor by @shoyer in #9444
- DataTree should not be "Generic" by @shoyer in #9445
- Fix typos across the code, doc and comments by @Armavica in #9443
- Make the first argument in DataTree.from_dict positional only by @shoyer in #9446
- Add ASV for datatree.from_dict by @Illviljan in #9459
- Implement
DataTree.__delitem__
by @TomNicholas in #9453 - Fix inheritance in DataTree.copy() by @shoyer in #9457
- Remove parent argument from DataTree.init by @TomNicholas in #9465
- Add days_in_year and decimal_year to dt accessor by @aulemahal in #9105
- Repo checker by @Armavica in #9450
- Update DataTree repr to indicate inheritance by @shoyer in #9470
- Rename DataTree's "ds" and "data" to "dataset" by @shoyer in #9476
- Fix
DataTree.coords.__setitem__
by addingDataTreeCoordinates
class by @TomNicholas in #9451 - Release notes for v2024.09.0 by @owenlittlejohns in #9480
New Contributors
- @TimothyCera-NOAA made their first contribution in #9304
- @Anu-Ra-g made their first contribution in #9163
- @domdent made their first contribution in #9318
- @diogoteles08 made their first contribution in #9331
- @Tao-VanJS made their first contribution in #9357
- @JackKelly made their first contribution in #9367
- @tsanona made their first contribution in #9353
- @hollymandel made their first contribution in #9394
- @Mikejmnez made their first contribution in #9391
- @andrew-s28 made their first contribution in #9393
- @philipc2 made their first contribution in #9406
- @srijan55 made their first contribution in #9412
- @oliverhiggs made their first contribution in #9413
- @Armavica made their first contribution in #9443
Full Changelog: v2024.07.0...v2024.09.0
v2024.07.0
This release extends the API for groupby operations with various grouper objects, and includes improvements to the documentation and numerous bugfixes.
Thanks to the 22 contributors to this release:
Alfonso Ladino, ChrisCleaner, David Hoese, Deepak Cherian, Dieter Werthmüller, Illviljan, Jessica Scheick, Joel Jaeschke, Justus Magin, K. Arthur Endsley, Kai Mühlbauer, Mark Harfouche, Martin Raspaud, Mathijs Verhaegh, Maximilian Roos, Michael Niklas, Michał Górny, Moritz Schreiber, Pontus Lurcock, Spencer Clark, Stephan Hoyer and Tom Nicholas
What's Changed
- new whats-new section by @keewis in #9115
- Move Sphinx directives out of
See also
by @max-sixty in #8466 - Add test for rechunking to a size string by @dcherian in #9117
- Update docstring in api.py for open_mfdataset(), clarifying "chunks" argument by @arthur-e in #9121
- Grouper refactor by @dcherian in #9122
- adjust repr tests to account for different platforms (#9127) by @mgorny in #9128
- Support duplicate dimensions in
.chunk
by @mraspaud in #9099 - Update zendoo badge link by @max-sixty in #9133
- Split out distributed writes in zarr docs by @max-sixty in #9132
- Improve
to_zarr
docs by @max-sixty in #9139 - groupby: remove some internal use of IndexVariable by @dcherian in #9123
- Improve zarr chunks docs by @max-sixty in #9140
- Include numbagg in type checks by @max-sixty in #9159
- Remove mypy exclusions for a couple more libraries by @max-sixty in #9160
- Add test for #9155 by @max-sixty in #9161
- Docs: Add figure for navigating help resources by @JessicaS11 in #9147
- switch to datetime unit
"D"
by @keewis in #9170 - Slightly improve DataTree repr by @shoyer in #9064
- Fix example code formatting for CachingFileManager by @djhoese in #9178
- Change np.core.defchararray to np.char (#9165) by @pont-us in #9166
- temporarily pin
numpy<2
by @keewis in #9181 - temporarily remove
pydap
from CI by @keewis in #9183 - also pin
numpy
in the all-but-dask CI by @keewis in #9184 - promote floating-point numeric datetimes to 64-bit before decoding by @keewis in #9182
"source"
encoding for datasets opened fromfsspec
objects by @keewis in #8923- properly diff objects with arrays as attributes on variables by @keewis in #9169
- Allow str in static typing of reindex, ffill etc. by @headtr1ck in #9194
- Fix dark-theme in
html[data-theme=dark]
-tags by @prisae in #9200 - Add open_datatree benchmark by @aladinor in #9158
- use a
composite
strategy to generate the dataframe with a tz-aware datetime column by @keewis in #9174 - Hierarchical coordinates in DataTree by @shoyer in #9063
- avoid converting custom indexes to pandas indexes when formatting coordinate diffs by @keewis in #9157
- Fix reductions for
np.complex_
dtypes with numbagg by @max-sixty in #9210 - Consolidate some numbagg tests by @max-sixty in #9211
- Use numpy 2.0-compat
np.complex64
dtype in test by @max-sixty in #9217 - Fix two bugs in DataTree.update() by @shoyer in #9214
- Only use necessary dims when creating temporary dataarray by @Illviljan in #9206
- Cleanup test_coding_times.py by @Illviljan in #9223
- Use reshape and ravel from duck_array_ops in coding/times.py by @Illviljan in #9225
- Use duckarray assertions in test_coding_times by @Illviljan in #9226
- Fix time indexing regression in
convert_calendar
by @hmaarrfk in #9192 numpy
2 compatibility in thenetcdf4
andh5netcdf
backends by @keewis in #9136numpy
2 compatibility in the iris code paths by @keewis in #9156- switch the documentation to run with
numpy>=2
by @keewis in #9177 - exclude the bots from the release notes by @keewis in #9235
- Add a
.drop_attrs
method by @max-sixty in #8258 - Allow mypy to run in vscode by @max-sixty in #9239
- Fix typing for test_plot.py by @Illviljan in #9234
- Added a space to the documentation by @ChrisCleaner in #9247
- Per-variable specification of boolean parameters in open_dataset by @Ostheer in #9218
- Enable pandas type checking by @headtr1ck in #9213
- fix typing of fallback isdtype method by @headtr1ck in #9250
- Fix mypy on main by @max-sixty in #9252
- Grouper, Resampler as public api by @dcherian in #8840
- Update dropna docstring by @TomNicholas in #9257
- Delete
base
andloffset
parameters to resample by @dcherian in #9233 - groupby, resample: Deprecate some positional args by @dcherian in #9236
- Add
encode_cf_datetime
benchmark by @spencerkclark in #9262 - Update signature for _arrayfunction.array by @Illviljan in #9237
- Fix copybutton for multi line examples in double digit ipython cells by @mosc9575 in #9264
- add backend intro and how-to diagram by @JessicaS11 in #9175
- Restore ability to specify _FillValue as Python native integers by @djhoese in #9258
- Adding
open_datatree
backend-specific keyword arguments by @aladinor in #9199 - Change .groupby fastpath to work for monotonic increasing and decreasing by @JoelJaeschke in #7427
- Fully deprecate squeeze kwarg to groupby by @dcherian in #9280
- Support rechunking to a frequency. by @dcherian in #9109
- automate extracting the contributors by @keewis in #9288
- Allow importing from xarray.groupers by @dcherian in #9289
- release notes for 2024.07.0 by @keewis in #9287
New Contributors
- @arthur-e made their first contribution in #9121
- @pont-us made their first contribution in #9166
- @prisae made their first contribution in #9200
- @ChrisCleaner made their first contribution in #9247
- @Ostheer made their first contribution in #9218
- @mosc9575 made their first contribution in #9264
- @JoelJaeschke made their first contribution in #7427
Full Changelog: v2024.06.0...v2024.07.0
v2024.06.0
This release brings compatibility with numpy 2 and various performance optimizations.
Thanks to the 22 contributors to this release:
Alfonso Ladino, David Hoese, Deepak Cherian, Eni Awowale, Ilan Gold, Jessica Scheick, Joe Hamman, Justus Magin, Kai Mühlbauer, Mark Harfouche, Mathias Hauser, Matt Savoie, Maximilian Roos, Mike Thramann, Nicolas Karasiak, Owen Littlejohns, Paul Ockenfuß, Philippe THOMY, Scott Henderson, Spencer Clark, Stephan Hoyer and Tom Nicholas
What's Changed
- attempt to get colour output in CI by @keewis in #9031
- [skip-ci] min_deps_check: show age of required pkg on error by @mathause in #9025
- TEST: Fix numbagg or bottlekneck skip by @hmaarrfk in #9034
- Use ME in test_plot instead of M by @hmaarrfk in #9035
- Bump codecov/codecov-action from 4.3.1 to 4.4.0 in the actions group by @dependabot in #9036
- (fix): equality check against singleton
PandasExtensionArray
by @ilan-gold in #9032 - array api-related upstream-dev failures by @keewis in #8854
- Bump codecov/codecov-action from 4.4.0 to 4.4.1 in the actions group by @dependabot in #9047
- User-guide - pandas : Add alternative to xarray.Dataset.from_dataframe by @loco-philippe in #9020
- pin nightly
zarr
to v2 by @keewis in #9050 - Clarify matmul does xarray.dot by @mthramann in #9060
- Run tests on changes to root dotfiles by @max-sixty in #9062
- Speed up netCDF4, h5netcdf backends by @dcherian in #9067
- Remove empty code cell in examples/multidimensional-coords.ipynb by @kmuehlbauer in #9071
- citation / orcid by @keewis in #9082
- Always run code tests by @dcherian in #9083
- fixes for the
pint
tests by @keewis in #8983 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #9061
- Address latest pandas-related upstream test failures by @spencerkclark in #9081
- Add scottyhq to CITATION.cff by @scottyhq in #9089
- Fix Typo in Bfill benchmark by @Ockenfuss in #9087
- add link to CF conventions on packed data in doc/user-guide/io.rst by @kmuehlbauer in #9045
- add order for polynomial interpolation, fixes #8762 by @nkarasiak in #9079
- Fix upcasting with python builtin numbers and numpy 2 by @djhoese in #8946
- Add Eni to CITATION.cff by @eni-awowale in #9095
- add Jessica to citation by @JessicaS11 in #9096
- (fix): don't handle time-dtypes as extension arrays in
from_dataframe
by @ilan-gold in #9042 - Micro optimizations to improve indexing by @hmaarrfk in #9002
- DAS-2067 - Migrate datatree io.py and common.py by @owenlittlejohns in #9011
- open_datatree performance improvement on NetCDF, H5, and Zarr files by @aladinor in #9014
- [skip-ci] Fix skip-ci for hypothesis by @dcherian in #9102
- Adds Matt Savoie to CITATION.cff by @flamingbear in #9103
- skip the
pandas
datetime roundtrip test withpandas=3.0
by @keewis in #9104 - Add user survey announcement to docs by @jhamman in #9101
- add remaining core-dev citations by @keewis in #9110
- Undo custom padding-top. by @dcherian in #9107
- [skip-ci] Try fixing hypothesis CI trigger by @dcherian in #9112
- release notes for 2024.06.0 by @keewis in #9092
- release v2024.06.0 by @keewis in #9113
New Contributors
- @loco-philippe made their first contribution in #9020
- @mthramann made their first contribution in #9060
- @nkarasiak made their first contribution in #9079
- @aladinor made their first contribution in #9014
Full Changelog: v2024.05.0...v2024.06.0
v2024.05.0
This release brings support for pandas ExtensionArray objects, optimizations when reading Zarr, the ability to concatenate datasets without pandas indexes,
more compatibility fixes for the upcoming numpy 2.0, and the migration of most of the xarray-datatree project code into xarray main
!
Thanks to the 18 contributors to this release:
Aimilios Tsouvelekakis, Andrey Akinshin, Deepak Cherian, Eni Awowale, Ilan Gold, Illviljan, Justus Magin, Mark Harfouche, Matt Savoie, Maximilian Roos, Noah C. Benson, Pascal Bourgault, Ray Bell, Spencer Clark, Tom Nicholas, ignamv, owenlittlejohns, and saschahofmann.
What's Changed
- Update reference to 'Weighted quantile estimators' by @AndreyAkinshin in #8898
- New empty whatsnew entry by @TomNicholas in #8899
- Bump the actions group with 1 update by @dependabot in #8896
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #8900
- Update docstring for compute and persist by @saschahofmann in #8903
- Stateful tests with Dataset by @dcherian in #8658
- Trigger hypothesis stateful tests nightly by @dcherian in #8907
- Don't access data when creating DataArray from Variable. by @dcherian in #8754
- Add typing to test_plot.py by @Illviljan in #8889
- Update hypothesis action to always save the cache by @dcherian in #8913
- Bump codecov/codecov-action from 4.1.1 to 4.2.0 in the actions group by @dependabot in #8918
- Add typing to some functions in indexing.py by @Illviljan in #8922
- Enhance the ugly error in constructor when no data passed by @aimtsou in #8920
- Migrate iterators.py for datatree. by @owenlittlejohns in #8879
- MAINT: use sphinxext-rediraffe conda install by @raybellwaves in #8936
- use
pd.to_timedelta
instead ofTimedeltaIndex
by @keewis in #8938 - adapt more tests to the copy-on-write behavior of pandas by @keewis in #8940
- Correct save_mfdataset docstring by @TomNicholas in #8934
- Bump codecov/codecov-action from 4.2.0 to 4.3.0 in the actions group by @dependabot in #8943
- Convert 360_day calendars by choosing random dates to drop or add by @aulemahal in #8603
- Add mypy to dev dependencies by @max-sixty in #8947
- Migrate datatree mapping.py by @owenlittlejohns in #8948
- (feat): Support for
pandas
ExtensionArray
by @ilan-gold in #8723 - Migrate formatting_html.py into xarray core by @eni-awowale in #8930
- use
nan
instead ofNaN
by @keewis in #8961 - stop pruning datatree_ directory from distribution by @flamingbear in #8953
- Delete pynio backend. by @dcherian in #8971
- Migrate datatreee assertions/extensions/formatting by @owenlittlejohns in #8967
- Bump dependencies incl
pandas>=2
by @dcherian in #8968 - Option to not auto-create index during expand_dims by @TomNicholas in #8960
- Raise errors on new warnings from within xarray by @max-sixty in #8974
- more engine environment tricks in preparation for
numpy>=2
by @keewis in #8978 - CI: python 3.12 by default. by @dcherian in #8969
- Switch all methods to
dim
by @max-sixty in #8982 - Docstring and documentation improvement for the Dataset class by @noahbenson in #8973
- Add notes on when to add ignores to warnings by @max-sixty in #8987
- Remove
.drop
warning allow by @max-sixty in #8988 - Skip flaky
test_open_mfdataset_manyfiles
test by @max-sixty in #8989 - clean up the upstream-dev setup script by @keewis in #8986
- avoid a couple of warnings in
polyfit
by @keewis in #8939 - Migration of datatree/ops.py -> datatree_ops.py by @flamingbear in #8976
- Mark
test_use_cftime_false_standard_calendar_in_range
as an expected failure by @spencerkclark in #8996 - call
np.cross
with 3D vectors only by @keewis in #8993 - Fix syntax error in test related to cupy by @hmaarrfk in #9000
- Add argument check_dims to assert_allclose to allow transposed inputs (#5733) by @ignamv in #8991
- Faster fastpath by @hmaarrfk in #9001
- Speed up localize by @Illviljan in #8536
- Bump codecov/codecov-action from 4.3.0 to 4.3.1 in the actions group by @dependabot in #9004
- Port negative frequency fix for
pandas.date_range
tocftime_range
by @spencerkclark in #8999 - Fix for ruff 0.4.3 by @max-sixty in #9007
- Trigger CI only if code files are modified. by @dcherian in #9006
- Zarr: Optimize
region="auto"
detection by @dcherian in #8997 - Add a benchmark to monitor performance for large dataset indexing by @hmaarrfk in #9012
- Avoid extra read from disk when creating Pandas Index. by @dcherian in #8893
- Fix benchmark CI by @dcherian in #9013
- Avoid auto creation of indexes in concat by @TomNicholas in #8872
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #9005
- Zarr: Optimize appending by @dcherian in #8998
- Add whatsnew entry for #8974 by @max-sixty in #9022
- Release summary for v2024.05.0 by @TomNicholas in #9021
New Contributors
- @AndreyAkinshin made their first contribution in #8898
- @aimtsou made their first contribution in #8920
- @ilan-gold made their first contribution in #8723
- @eni-awowale made their first contribution in #8930
- @noahbenson made their first contribution in #8973
- @ignamv made their first contribution in #8991
Full Changelog: v2024.03.0...v2024.05.0
v2024.03.0
What's Changed
- new whats-new section by @keewis in #8767
- [skip-ci] NamedArray: Add lazy indexing array refactoring plan by @dcherian in #8775
- refactor
indexing.py
: introduce.oindex
for Explicitly Indexed Arrays by @andersy005 in #8750 - Fixing issue #8770: Improved frequency parameter logic to set it to 'D' only if periods, start, or end are None. by @rjavierch in #8774
- Bump the actions group with 2 updates by @dependabot in #8785
- introduce
.vindex
property for Explicitly Indexed Arrays by @andersy005 in #8780 - Migrate treenode module. by @flamingbear in #8757
- Fix non-nanosecond casting behavior for
expand_dims
by @spencerkclark in #8782 - fix: remove Coordinate from all in xarray/init.py by @hassec in #8791
- tokenize() should ignore difference between None and {} attrs by @crusaderky in #8797
- Bump the actions group with 2 updates by @dependabot in #8804
- Grouper object design doc by @dcherian in #8510
- Refactor Grouper objects by @dcherian in #8776
- DOC: link to zarr.convenience.consolidate_metadata by @raybellwaves in #8816
- Update documentation for clarity by @staadecker in #8817
- Bump the actions group with 1 update by @dependabot in #8818
- try to get the
upstream-dev
CI to complete again by @keewis in #8823 - Do not attempt to broadcast when global option
arithmetic_broadcast=False
by @etienneschalk in #8784 - Make list_chunkmanagers more resilient to broken entrypoints by @hmaarrfk in #8736
- Add
dask-expr
to environment-3.12.yml by @dcherian in #8827 - [skip-ci] Add dask-expr dependency to doc.yml by @andersy005 in #8835
- Add dask-expr for windows envs by @dcherian in #8837
- [skip-ci] Fix upstream-dev env by @dcherian in #8839
- Return a dataclass from Grouper.factorize by @dcherian in #8777
- Expand use of
.oindex
and.vindex
by @andersy005 in #8790 - correctly encode/decode _FillValues/missing_values/dtypes for packed data by @kmuehlbauer in #8713
- Support pandas copy-on-write behaviour by @dcherian in #8846
- Implement setitem syntax for
.oindex
and.vindex
properties by @andersy005 in #8845 - FIX: do not cast _FillValue/missing_value in CFMaskCoder if _Unsigned is provided by @kmuehlbauer in #8852
- FIX: adapt handling of copy keyword argument in scipy backend for numpy >= 2.0dev by @kmuehlbauer in #8851
- pandas 3 MultiIndex fixes by @dcherian in #8847
- increase typing annotations coverage in
xarray/core/indexing.py
by @andersy005 in #8857 - upstream-dev CI: Fix interp and cumtrapz by @dcherian in #8861
- numpy 2.0 copy-keyword and trapz vs trapezoid by @kmuehlbauer in #8865
- Handle .oindex and .vindex for the PandasMultiIndexingAdapter and PandasIndexingAdapter by @andersy005 in #8869
- Update docs on view / copies by @ks905383 in #8744
- Opt out of auto creating index variables by @TomNicholas in #8711
- groupby: Dispatch quantile to flox. by @dcherian in #8720
- warn and return bytes undecoded in case of UnicodeDecodeError in h5netcdf-backend by @kmuehlbauer in #8874
- Migrate datatree.py module into xarray.core. by @owenlittlejohns in #8789
- Don't allow overwriting indexes with region writes by @dcherian in #8877
- Allow multidimensional variable with same name as dim when constructing dataset via coords by @TomNicholas in #8886
- Optimize writes to existing Zarr stores. by @dcherian in #8875
- Add dt.date to plottable types by @saschahofmann in #8873
- Check for aligned chunks when writing to existing variables by @max-sixty in #8459
- Avoid in-place multiplication of a large value to an array with small integer dtype by @Illviljan in #8867
- Add typing to test_groupby.py by @Illviljan in #8890
- 2024.03.0: Add whats-new by @dcherian in #8891
New Contributors
- @rjavierch made their first contribution in #8774
- @hassec made their first contribution in #8791
- @staadecker made their first contribution in #8817
- @ks905383 made their first contribution in #8744
- @owenlittlejohns made their first contribution in #8789
- @saschahofmann made their first contribution in #8873
Full Changelog: v2024.02.0...v2024.03.0
v2024.02.0
This release brings size information to the text repr
, changes to the accepted frequency strings, and various bug fixes.
Thanks to our 12 contributors:
Anderson Banihirwe, Deepak Cherian, Eivind Jahren, Etienne Schalk, Justus Magin, Marco Wolsza, Mathias Hauser, Matt Savoie, Maximilian Roos, Rambaud Pierrick, Tom Nicholas
v2024.01.1
This release is to fix a bug with the rendering of the documentation, but it also includes changes to the handling of pandas frequency strings.
What's Changed
- Re-enable mypy checks for parse_dims unit tests by @crusaderky in #8618
- import from the new location of
normalize_axis_index
if possible by @keewis in #8483 - Update min deps in docs by @jhamman in #8622
- Fix GH212, PP308 by @tqa236 in #8621
- Partially fix doctests by @max-sixty in #8631
- Fix building doc following depreciation in Pandas 2.2.0 by @nameloCmaS in #8633
- Workaround broken test from pyarrow by @max-sixty in #8634
- xfail pyarrow test by @max-sixty in #8635
- Don't show stdlib paths for
user_level_warnings
by @max-sixty in #8625 - xfail another dask/pyarrow test by @max-sixty in #8636
- xfail a cftime test by @max-sixty in #8637
- Silence deprecation warning from
.dims
in tests by @max-sixty in #8639 - Use
T_DataArray
inWeighted
by @max-sixty in #8630 - rename "Y" freq string to "YE" (pandas parity) by @mathause in #8629
- Pandas 2.2.0 test fixes by @nameloCmaS in #8638
- xfail zarr test on Windows by @max-sixty in #8643
- Use ddof in
numbagg>=0.7.0
for aggregations by @max-sixty in #8624 - infer_freq: return 'YE' (#8629 follow-up) by @mathause in #8642
- Pin sphinx-book-theme to 1.0.1 to try to deal with #8619 by @TomNicholas in #8632
- Fixed typo in custom backend registration documentation by @HertugHelms in #8645
- implement
isnull
usingfull_like
instead ofzeros_like
by @keewis in #7395
New Contributors
- @nameloCmaS made their first contribution in #8633
- @HertugHelms made their first contribution in #8645
Full Changelog: v2024.01.0...v2024.01.1
v2024.01.0
This release brings support for weights in correlation and covariance functions,
a new DataArray.cumulative
aggregation, improvements to xr.map_blocks
,
an update to our minimum dependencies, and various bugfixes.
Thanks to our 17 contributors to this release:
Abel Aoun, Deepak Cherian, Illviljan, Johan Mathe, Justus Magin, Kai Mühlbauer,
Llorenç Lledó, Mark Harfouche, Markel, Mathias Hauser, Maximilian Roos, Michael Niklas,
Niclas Rieger, Sébastien Celles, Tom Nicholas, Trinh Quoc Anh, and crusaderky.
v2023.12.0
This release brings new hypothesis strategies for testing, significantly faster rolling aggregations as well as ffill
and bfill
with numbagg, a new Dataset.eval
method, and improvements to reading and writing Zarr arrays (including a new "a-"
mode).
Thanks to our 16 contributors:
Anderson Banihirwe, Ben Mares, Carl Andersson, Deepak Cherian, Doug Latornell, Gregorio L. Trevisan, Illviljan, Jens Hedegaard Nielsen, Justus Magin, Mathias Hauser, Max Jones, Maximilian Roos, Michael Niklas, Patrick Hoefler, Ryan Abernathey, Tom Nicholas
What's Changed
- [skip-ci] dev whats-new by @dcherian in #8467
- Consolidate
_get_alpha
func by @max-sixty in #8465 - Fix
map_blocks
docs' formatting by @max-sixty in #8464 - Use concise date format when plotting by @Illviljan in #8449
- Fix mypy tests by @max-sixty in #8476
- Allow
rank
to run on dask arrays by @max-sixty in #8475 - Add whatsnew for #8475 by @max-sixty in #8478
- Improve "variable not found" error message by @max-sixty in #8474
- Fix bug for categorical pandas index with categories with EA dtype by @phofl in #8481
- Use numbagg for
ffill
by default by @max-sixty in #8389 - Refine rolling_exp error messages by @max-sixty in #8485
- Fix Zarr region transpose by @max-sixty in #8484
- Reduce redundancy between namedarray and variable tests by @maxrjones in #8405
- Start renaming
dims
todim
by @max-sixty in #8487 - Raise an informative error message when object array has mixed types by @andersy005 in #4700
- Update resample time offset FutureWarning and docs by @douglatornell in #8479
- Fix minor typo in io.rst by @maresb in #8492
- Warn on repeated dimension names during construction by @TomNicholas in #8491
- Minor to_zarr optimizations by @dcherian in #8489
- Properly closes zarr groups in zarr store by @CarlAndersson in #8425
- Avoid duplicate Zarr array read by @dcherian in #8472
- Add mode='a-': Do not overwrite coordinates when appending to Zarr with
append_dim
by @rabernat in #8428 - Add expand_dims by @Illviljan in #8407
- Update to mypy1.7 by @headtr1ck in #8501
- change type of curvefit's p0 and bounds to mapping by @headtr1ck in #8502
- Fully deprecate
.drop
by @max-sixty in #8497 - Fix docstrings for
combine_by_coords
by @gtrevisan in #8471 - roll out the new/refreshed Xarray logo by @andersy005 in #8505
- Add extra overload for to_netcdf by @jenshnielsen in #8268
- Allow callables to
.drop_vars
by @max-sixty in #8511 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #8517
- Fix type of
.assign_coords
by @max-sixty in #8495 - [skip-ci] fix RTD docs build by @andersy005 in #8519
- Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 by @dependabot in #8514
- Use numbagg for
rolling
methods by @max-sixty in #8493 - Hypothesis strategy for generating Variable objects by @TomNicholas in #8404
- Remove PR labeler bot by @TomNicholas in #8525
- test and fix empty xindexes repr by @mathause in #8521
- Deprecate ds.dims returning dict by @TomNicholas in #8500
- Add
eval
method to Dataset by @max-sixty in #7163 - explicitly skip using
__array_namespace__
fornumpy.ndarray
by @keewis in #8526 - Whats-new for 2023.12.0 by @dcherian in #8532
New Contributors
- @CarlAndersson made their first contribution in #8425
Full Changelog: v2023.11.0...v2023.12.0