Source: python-h5netcdf Version: 1.0.0-3 Severity: serious Tags: upstream patch ftbfs
Dear Maintainer, Your package FTBFS with NetCDF 4.9.0 which added more compression options, this also causes the autopkgtest to fail: =================================== FAILURES =================================== ______________________ test_write_legacyapi_read_netCDF4 _______________________ tmp_local_netcdf = '/tmp/pytest-of-debci/pytest-0/test_write_legacyapi_read_netC0/testfile.nc' def test_write_legacyapi_read_netCDF4(tmp_local_netcdf): > roundtrip_legacy_netcdf(tmp_local_netcdf, netCDF4, legacyapi) tests/test_h5netcdf.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_h5netcdf.py:446: in roundtrip_legacy_netcdf read_legacy_netcdf(tmp_netcdf, read_module, write_module) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tmp_netcdf = '/tmp/pytest-of-debci/pytest-0/test_write_legacyapi_read_netC0/testfile.nc' read_module = <module 'netCDF4' from '/usr/lib/python3/dist-packages/netCDF4/__init__.py'> write_module = <module 'h5netcdf.legacyapi' from '/usr/lib/python3/dist-packages/h5netcdf/legacyapi.py'> def read_legacy_netcdf(tmp_netcdf, read_module, write_module): ds = read_module.Dataset(tmp_netcdf, "r") assert ds.ncattrs() == ["global", "other_attr"] assert ds.getncattr("global") == 42 if write_module is not netCDF4: # skip for now: https://github.com/Unidata/netcdf4-python/issues/388 assert ds.other_attr == "yes" with pytest.raises(AttributeError): ds.does_not_exist assert set(ds.dimensions) == set( ["x", "y", "z", "empty", "string3", "mismatched_dim", "unlimited"] ) assert set(ds.variables) == set( [ "foo", "y", "z", "intscalar", "scalar", "var_len_str", "mismatched_dim", "foo_unlimited", ] ) assert set(ds.groups) == set(["subgroup"]) assert ds.parent is None v = ds.variables["foo"] assert array_equal(v, np.ones((4, 5))) assert v.dtype == float assert v.dimensions == ("x", "y") assert v.ndim == 2 assert v.ncattrs() == ["units"] if write_module is not netCDF4: assert v.getncattr("units") == "meters" assert tuple(v.chunking()) == (4, 5) > assert v.filters() == { "complevel": 4, "fletcher32": False, "shuffle": True, "zlib": True, } E AssertionError: assert {'blosc': Fal...': False, ...} == {'complevel':... 'zlib': True} E Omitting 4 identical items, use -vv to show E Left contains 4 more items: E {'blosc': False, 'bzip2': False, 'szip': False, 'zstd': False} E Use -v to get the full diff tests/test_h5netcdf.py:259: AssertionError _______________________ test_write_h5netcdf_read_netCDF4 _______________________ tmp_local_netcdf = '/tmp/pytest-of-debci/pytest-0/test_write_h5netcdf_read_netCD0/testfile.nc' def test_write_h5netcdf_read_netCDF4(tmp_local_netcdf): write_h5netcdf(tmp_local_netcdf) > read_legacy_netcdf(tmp_local_netcdf, netCDF4, h5netcdf) tests/test_h5netcdf.py:468: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tmp_netcdf = '/tmp/pytest-of-debci/pytest-0/test_write_h5netcdf_read_netCD0/testfile.nc' read_module = <module 'netCDF4' from '/usr/lib/python3/dist-packages/netCDF4/__init__.py'> write_module = <module 'h5netcdf' from '/usr/lib/python3/dist-packages/h5netcdf/__init__.py'> def read_legacy_netcdf(tmp_netcdf, read_module, write_module): ds = read_module.Dataset(tmp_netcdf, "r") assert ds.ncattrs() == ["global", "other_attr"] assert ds.getncattr("global") == 42 if write_module is not netCDF4: # skip for now: https://github.com/Unidata/netcdf4-python/issues/388 assert ds.other_attr == "yes" with pytest.raises(AttributeError): ds.does_not_exist assert set(ds.dimensions) == set( ["x", "y", "z", "empty", "string3", "mismatched_dim", "unlimited"] ) assert set(ds.variables) == set( [ "foo", "y", "z", "intscalar", "scalar", "var_len_str", "mismatched_dim", "foo_unlimited", ] ) assert set(ds.groups) == set(["subgroup"]) assert ds.parent is None v = ds.variables["foo"] assert array_equal(v, np.ones((4, 5))) assert v.dtype == float assert v.dimensions == ("x", "y") assert v.ndim == 2 assert v.ncattrs() == ["units"] if write_module is not netCDF4: assert v.getncattr("units") == "meters" assert tuple(v.chunking()) == (4, 5) > assert v.filters() == { "complevel": 4, "fletcher32": False, "shuffle": True, "zlib": True, } E AssertionError: assert {'blosc': Fal...': False, ...} == {'complevel':... 'zlib': True} E Omitting 4 identical items, use -vv to show E Left contains 4 more items: E {'blosc': False, 'bzip2': False, 'szip': False, 'zstd': False} E Use -v to get the full diff tests/test_h5netcdf.py:259: AssertionError =========================== short test summary info ============================ FAILED tests/test_h5netcdf.py::test_write_legacyapi_read_netCDF4 - AssertionE... FAILED tests/test_h5netcdf.py::test_write_h5netcdf_read_netCDF4 - AssertionEr... =================== 2 failed, 69 passed, 22 skipped in 2.44s =================== The attached patch fixes the issue. Kind Regards, Bas
diff -Nru python-h5netcdf-1.0.0/debian/changelog python-h5netcdf-1.0.0/debian/changelog --- python-h5netcdf-1.0.0/debian/changelog 2022-04-12 02:20:27.000000000 +0200 +++ python-h5netcdf-1.0.0/debian/changelog 2022-06-25 14:08:53.000000000 +0200 @@ -1,3 +1,10 @@ +python-h5netcdf (1.0.0-3.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add patch to fix FTBFS with NetCDF 4.9.0. + + -- Bas Couwenberg <sebas...@debian.org> Sat, 25 Jun 2022 14:08:53 +0200 + python-h5netcdf (1.0.0-3) unstable; urgency=medium * Team upload. diff -Nru python-h5netcdf-1.0.0/debian/patches/netcdf-4.9.0.patch python-h5netcdf-1.0.0/debian/patches/netcdf-4.9.0.patch --- python-h5netcdf-1.0.0/debian/patches/netcdf-4.9.0.patch 1970-01-01 01:00:00.000000000 +0100 +++ python-h5netcdf-1.0.0/debian/patches/netcdf-4.9.0.patch 2022-06-25 14:08:53.000000000 +0200 @@ -0,0 +1,41 @@ +Description: Fix test failure with NetCDF 4.9.0. +Author: Bas Couwenberg <sebas...@debian.org> + +--- a/h5netcdf/tests/test_h5netcdf.py ++++ b/h5netcdf/tests/test_h5netcdf.py +@@ -256,12 +256,11 @@ def read_legacy_netcdf(tmp_netcdf, read_ + if write_module is not netCDF4: + assert v.getncattr("units") == "meters" + assert tuple(v.chunking()) == (4, 5) +- assert v.filters() == { +- "complevel": 4, +- "fletcher32": False, +- "shuffle": True, +- "zlib": True, +- } ++ filters = v.filters() ++ assert filters['complevel'] == 4 ++ assert filters['fletcher32'] is False ++ assert filters['shuffle'] is True ++ assert filters['zlib'] is True + + v = ds.variables["y"] + assert array_equal(v, np.r_[np.arange(4), [-1]]) +@@ -271,12 +270,11 @@ def read_legacy_netcdf(tmp_netcdf, read_ + assert v.ncattrs() == ["_FillValue"] + assert v.getncattr("_FillValue") == -1 + assert v.chunking() == "contiguous" +- assert v.filters() == { +- "complevel": 0, +- "fletcher32": False, +- "shuffle": False, +- "zlib": False, +- } ++ filters = v.filters() ++ assert filters['complevel'] == 0 ++ assert filters['fletcher32'] is False ++ assert filters['shuffle'] is False ++ assert filters['zlib'] is False + ds.close() + + # Check the behavior if h5py. Cannot expect h5netcdf to overcome these diff -Nru python-h5netcdf-1.0.0/debian/patches/series python-h5netcdf-1.0.0/debian/patches/series --- python-h5netcdf-1.0.0/debian/patches/series 1970-01-01 01:00:00.000000000 +0100 +++ python-h5netcdf-1.0.0/debian/patches/series 2022-06-25 14:05:51.000000000 +0200 @@ -0,0 +1 @@ +netcdf-4.9.0.patch