Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ci/policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ policy:
- hypothesis
- pytz
- pytest-reportlog
- pyarrow # transitive dependency of dask.dataframe, not an xarray dependency
# these packages don't fail the CI, but will be printed in the report
ignored_violations:
- array-api-strict
6 changes: 0 additions & 6 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,6 @@ def pytest_collection_modifyitems(items):
item.add_marker(pytest.mark.mypy)


@pytest.fixture(autouse=True)
def set_zarr_v3_api(monkeypatch):
"""Set ZARR_V3_EXPERIMENTAL_API environment variable for all tests."""
monkeypatch.setenv("ZARR_V3_EXPERIMENTAL_API", "1")


@pytest.fixture(autouse=True)
def add_standard_imports(doctest_namespace, tmpdir):
import numpy as np
Expand Down
78 changes: 78 additions & 0 deletions doc/whats-new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,71 @@ New Features

Breaking Changes
~~~~~~~~~~~~~~~~
The minimum versions of some dependencies were changed:
By `Joe Hamman <https://github.com/jhamman>`_.

.. list-table::
:header-rows: 1
:widths: 30 20 20

* - Dependency
- Old Version
- New Version
* - boto3
- 1.34
- 1.37
* - cartopy
- 0.23
- 0.24
* - dask-core
- 2024.6
- 2025.2
* - distributed
- 2024.6
- 2025.2
* - flox
- 0.9
- 0.10
* - h5netcdf
- 1.4
- 1.5
* - h5py
- 3.11
- 3.13
* - iris
- 3.9
- 3.11
* - lxml
- 5.1
- 5.3
* - matplotlib-base
- 3.8
- 3.10
* - numba
- 0.60
- 0.61
* - numbagg
- 0.8
- 0.9
* - numpy
- 1.26
- 2.1
Comment thread
jhamman marked this conversation as resolved.
* - packaging
- 24.1
- 24.2
* - rasterio
- 1.3
- 1.4
* - scipy
- 1.13
- 1.15
* - toolz
- 0.12
- 1.0
* - zarr
- 2.18
- 3.0

- Xarray will no longer by default decode a variable into a
:py:class:`np.timedelta64` dtype based on the presence of a timedelta-like
``"units"`` attribute alone. Instead it will rely on the presence of a
Expand All @@ -31,6 +96,15 @@ Breaking Changes
``open_dataset`` and ``open_datatree`` the default behavior of fsspec is now to
use block caching with a 4MB block size (:pull:`11216`). By `Julia Signell
<https://github.com/jsignell>`_.
- The minimum zarr version is now 3.0. All zarr-python 2.x compatibility code
has been removed from the zarr backend. The following parameters have been
removed:

- ``zarr_version``: Use ``zarr_format`` instead (was deprecated since 2024.9.1).
- ``synchronizer``: Not supported in zarr-python 3.x.
- ``chunk_store``: Not supported in zarr-python 3.x.

By `Joe Hamman <https://github.com/jhamman>`_ (:pull:`11232`).

Deprecations
~~~~~~~~~~~~
Expand All @@ -41,6 +115,10 @@ Bug Fixes

- Fix ``Source`` link in api docs (:pull:`11187`)
By `Ian Hunt-Isaak <https://github.com/ianhi>`_
- Fix async zarr tests using ``wraps`` with ``autospec=True`` on async methods,
which caused ``AsyncMock`` objects to leak through instead of real array data
(:pull:`11232`).
By `Joe Hamman <https://github.com/jhamman>`_.
- Coerce masked dask arrays to filled (:issue:`9374` :pull:`11157`).
By `Julia Signell <https://github.com/jsignell>`_

Expand Down
39 changes: 20 additions & 19 deletions pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ python = "*"
numpy = "*"
pandas = "*"

packaging = "24.1.*"
packaging = "24.2.*"
git = "*" # needed for dynamic versioning

[dependencies]
Expand Down Expand Up @@ -103,44 +103,45 @@ jax = "*" # no way to get cpu-only jaxlib from conda if gpu is present
[feature.minimal.dependencies]
# minimal versions
python = "3.11.*"
numpy = "1.26.*"
numpy = "2.1.*"
pandas = "2.2.*"

[feature.minimum-scipy.dependencies]
scipy = "1.13.*"
scipy = "1.15.*"

[feature.min-versions.dependencies]
array-api-strict = "2.4.*" # dependency for testing the array api compat
boto3 = "1.34.*"
boto3 = "1.37.*"
bottleneck = "1.4.*"
cartopy = "0.23.*"
cartopy = "0.24.*"
cftime = "1.6.*"
dask-core = "2024.6.*"
distributed = "2024.6.*"
flox = "0.9.*"
h5netcdf = "1.4.*"
dask-core = "2025.2.*"
distributed = "2025.2.*"
flox = "0.10.*"
h5netcdf = "1.5.*"
# h5py and hdf5 tend to cause conflicts
# for e.g. hdf5 1.12 conflicts with h5py=3.1
# prioritize bumping other packages instead
h5py = "3.11.*"
h5py = "3.13.*"
hdf5 = "1.14.*"
iris = "3.9.*"
lxml = "5.1.*" # Optional dep of pydap
matplotlib-base = "3.8.*"
iris = "3.11.*"
lxml = "5.3.*" # Optional dep of pydap
matplotlib-base = "3.10.*"
nc-time-axis = "1.4.*"
# netcdf follows a 1.major.minor[.patch] convention
# (see https://github.com/Unidata/netcdf4-python/issues/1090)
netcdf4 = "1.6.*"
numba = "0.60.*"
numbagg = "0.8.*"
packaging = "24.1.*"
numba = "0.61.*"
numbagg = "0.9.*"
packaging = "24.2.*"
pint = "0.24.*"
pydap = "3.5.*"
rasterio = "1.3.*"
rasterio = "1.4.*"
seaborn = "0.13.*"
sparse = "0.15.*"
toolz = "0.12.*"
zarr = "2.18.*"
toolz = "1.0.*"
zarr = "3.0.*"
pyarrow = "*" # required by dask.dataframe

# TODO: Remove `target.unix` restriction once pandas nightly has win-64 wheels again.
# Without this, `pixi lock` fails because it can't solve the nightly feature for win-64,
Expand Down
17 changes: 8 additions & 9 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ name = "xarray"
readme = "README.md"
requires-python = ">=3.11"

dependencies = ["numpy>=1.26", "packaging>=24.1", "pandas>=2.2"]
dependencies = ["numpy>=2.1", "packaging>=24.2", "pandas>=2.2"]

# We don't encode minimum requirements here (though if we can write a script to
# generate the text from `min_deps_check.py`, that's welcome...). We do add
Expand All @@ -27,27 +27,27 @@ dependencies = ["numpy>=1.26", "packaging>=24.1", "pandas>=2.2"]

[project.optional-dependencies]
accel = [
"scipy>=1.13",
"scipy>=1.15",
"bottleneck",
"numbagg>=0.8",
"numbagg>=0.9",
"numba>=0.62", # numba 0.62 added support for numpy 2.3
"flox>=0.9",
"flox>=0.10",
"opt_einsum",
]
complete = ["xarray[accel,etc,io,parallel,viz]"]
io = [
"netCDF4>=1.6.0",
"h5netcdf[h5py]>=1.4.0",
"h5netcdf[h5py]>=1.5.0",
"pydap",
"scipy>=1.13",
"zarr>=2.18",
"scipy>=1.15",
"zarr>=3.0",
"fsspec",
"cftime",
"pooch",
]
etc = ["sparse>=0.15"]
parallel = ["dask[complete]"]
viz = ["cartopy>=0.23", "matplotlib>=3.8", "nc-time-axis", "seaborn"]
viz = ["cartopy>=0.24", "matplotlib>=3.10", "nc-time-axis", "seaborn"]
types = [
"pandas-stubs",
"scipy-stubs",
Expand Down Expand Up @@ -310,7 +310,6 @@ asyncio_default_fixture_loop_scope = "function"
addopts = [
"--strict-config",
"--strict-markers",
"--mypy-only-local-stub",
"--mypy-pyproject-toml-file=pyproject.toml",
]

Expand Down
Loading
Loading