Skip to content

Commit 0759925

Browse files
Merge pull request #6827 from trexfeathers/dataset_iterable
Compatibility with NetCDF4 v1.7.3 and unpin Dask
2 parents 42fcab2 + 4f6bb8b commit 0759925

File tree

9 files changed

+322
-301
lines changed

9 files changed

+322
-301
lines changed

docs/src/whatsnew/3.14.rst

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ v3.14.1 (Date TBD)
6363
#. Tentative compatibility with Python 3.14, pending full CI support later.
6464
:ref:`See Dependencies for more<3_14_dependencies>`.
6565

66+
#. Removed netCDF4<1.7.3 temporary pin.
67+
68+
#. Enabled Dask versions beyond `2025.10` (`2025.10.0` contained a known bug
69+
and is therefore disabled).
70+
6671
✨ Features
6772
===========
6873

@@ -180,7 +185,8 @@ v3.14.1 (Date TBD)
180185

181186
#. `@pp-mo`_ added a temporary dependency pins for Python<3.14, dask<2025.10.0 and
182187
netCDF4<1.7.3. Edit 2025-12-03: the Python pin has now been removed in
183-
:pull:`6817`.
188+
:pull:`6817`, :pull:`6826` has removed the netCDF4 pin and
189+
replaced the Dask pin with a negation (``!=2025.10.0``).
184190
(:issue:`6775`, :issue:`6776`, :issue:`6777`, :pull:`6773`)
185191

186192
#. `@trexfeathers`_ provided tentative compatibility with Python 3.14 by fixing
@@ -189,6 +195,14 @@ v3.14.1 (Date TBD)
189195
dependencies, but the relevant tests have been shown to pass in :pull:`6816`.
190196
(:issue:`6775`, :pull:`6817`)
191197

198+
#. `@trexfeathers`_ fixed an incompatibility with the netCDF4 package (relating
199+
to dataset iterability). (:issue:`6777`, :pull:`6826`)
200+
201+
#. `@trexfeathers`_ replaced the Dask version pin with a negation
202+
(``!=2025.10.0``), as the relevant bug has been fixed in subsequent Dask
203+
releases. (:issue:`6776`, :pull:`6826`)
204+
205+
192206

193207
📚 Documentation
194208
================

lib/iris/loading.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ def _generate_cubes(uris, callback, constraints):
6969
import iris.io
7070

7171
"""Return a generator of cubes given the URIs and a callback."""
72-
if isinstance(uris, str) or not isinstance(uris, Iterable):
73-
# Make a string, or other single item, into an iterable.
72+
if (
73+
isinstance(uris, str)
74+
or hasattr(uris, "fromcdl")
75+
or not isinstance(uris, Iterable)
76+
):
77+
# Make a string, Dataset, or other single item, into an iterable.
7478
uris = [uris]
7579

7680
# Group collections of uris by their iris handler

requirements/locks/py311-linux-64.lock

Lines changed: 97 additions & 96 deletions
Large diffs are not rendered by default.

requirements/locks/py312-linux-64.lock

Lines changed: 96 additions & 95 deletions
Large diffs are not rendered by default.

requirements/locks/py313-linux-64.lock

Lines changed: 97 additions & 96 deletions
Large diffs are not rendered by default.

requirements/py311.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ dependencies:
1414
- cartopy >=0.21
1515
- cf-units >=3.1
1616
- cftime >=1.5
17-
- dask-core >=2025.1.0,<2025.10.0 # https://github.com/SciTools/iris/issues/6776
17+
- dask-core >=2025.1.0,!=2025.10.0
1818
- libnetcdf !=4.9.1
1919
- matplotlib-base >=3.5, !=3.9.1
20-
- netcdf4<1.7.3 # https://github.com/SciTools/iris/issues/6777
20+
- netcdf4
2121
- numpy >=1.24, !=1.24.3
2222
- python-xxhash
2323
- pyproj
@@ -44,7 +44,7 @@ dependencies:
4444
- imagehash >=4.0
4545
- pre-commit
4646
- psutil
47-
- pytest
47+
- pytest<9
4848
- pytest-cov
4949
- pytest-mock
5050
- pytest-xdist

requirements/py312.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ dependencies:
1414
- cartopy >=0.21
1515
- cf-units >=3.1
1616
- cftime >=1.5
17-
- dask-core >=2025.1.0,<2025.10.0 # https://github.com/SciTools/iris/issues/6776
17+
- dask-core >=2025.1.0,!=2025.10.0
1818
- libnetcdf !=4.9.1
1919
- matplotlib-base >=3.5, !=3.9.1
20-
- netcdf4<1.7.3 # https://github.com/SciTools/iris/issues/6777
20+
- netcdf4
2121
- numpy >=1.24, !=1.24.3
2222
- python-xxhash
2323
- pyproj
@@ -44,7 +44,7 @@ dependencies:
4444
- imagehash >=4.0
4545
- pre-commit
4646
- psutil
47-
- pytest
47+
- pytest<9
4848
- pytest-cov
4949
- pytest-mock
5050
- pytest-xdist

requirements/py313.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ dependencies:
1414
- cartopy >=0.21
1515
- cf-units >=3.1
1616
- cftime >=1.5
17-
- dask-core >=2025.1.0,<2025.10.0 # https://github.com/SciTools/iris/issues/6776
17+
- dask-core >=2025.1.0,!=2025.10.0
1818
- libnetcdf !=4.9.1
1919
- matplotlib-base >=3.5, !=3.9.1
20-
- netcdf4<1.7.3 # https://github.com/SciTools/iris/issues/6777
20+
- netcdf4
2121
- numpy >=1.24, !=1.24.3
2222
- python-xxhash
2323
- pyproj
@@ -44,7 +44,7 @@ dependencies:
4444
- imagehash >=4.0
4545
- pre-commit
4646
- psutil
47-
- pytest
47+
- pytest<9
4848
- pytest-cov
4949
- pytest-mock
5050
- pytest-xdist

requirements/pypi-core.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
cartopy>=0.21
22
cf-units>=3.1
33
cftime>=1.5.0
4-
dask[array]>=2025.1.0,<2025.10.0 # https://github.com/SciTools/iris/issues/6776
4+
dask[array]>=2025.1.0,!=2025.10.0
55
# libnetcdf!=4.9.1 (not available on PyPI)
66
matplotlib>=3.5
7-
netcdf4<1.7.3 # https://github.com/SciTools/iris/issues/6777
7+
netcdf4
88
numpy>=1.24,!=1.24.3
99
pyproj
1010
scipy

0 commit comments

Comments
 (0)