Package: src:python-xarray
Version: 2025.01.2-1
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean  --buildsystem=pybuild --with python3
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_clean
        pybuild --clean -i python{version} -p 3.13
I: pybuild base:311: python3.13 setup.py clean 
/usr/lib/python3/dist-packages/setuptools_scm/_integration/setuptools.py:92: 
UserWarning: version of None already set
  warnings.warn(f"version of {dist_name} already set")
/usr/lib/python3/dist-packages/setuptools/dist.py:330: InformationOnly: 
Normalizing '2025.01.2' to '2025.1.2'
  self.metadata.version = self._normalize_version(self.metadata.version)
running clean
removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build' (and everything 
under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it

[... snipped ...]

            else:
                raise ValueError(
                    f"unknown setting for chunked array handling in 
apply_ufunc: {dask}"
                )
        else:
            if vectorize:
                func = _vectorize(
                    func, signature, output_dtypes=output_dtypes, 
exclude_dims=exclude_dims
                )
    
>       result_data = func(*input_data)
E       RuntimeWarning: invalid value encountered in sqrt

xarray/core/computation.py:824: RuntimeWarning
______________ test_weighted_operations_keep_attr[None-False-std] ______________

operation = 'std', as_dataset = False, keep_attrs = None

    @pytest.mark.parametrize(
        "operation",
        ("sum_of_weights", "sum", "mean", "sum_of_squares", "var", "std", 
"quantile"),
    )
    @pytest.mark.parametrize("as_dataset", (True, False))
    @pytest.mark.parametrize("keep_attrs", (True, False, None))
    def test_weighted_operations_keep_attr(operation, as_dataset, keep_attrs):
        weights = DataArray(np.random.randn(2, 2), attrs=dict(attr="weights"))
        data = DataArray(np.random.randn(2, 2))
    
        if as_dataset:
            data = data.to_dataset(name="data")
    
        data.attrs = dict(attr="weights")
    
        kwargs = {"keep_attrs": keep_attrs}
        if operation == "quantile":
            kwargs["q"] = 0.5
    
>       result = getattr(data.weighted(weights), operation)(**kwargs)

xarray/tests/test_weighted.py:743: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
xarray/core/weighted.py:517: in std
    return self._implementation(
xarray/core/weighted.py:546: in _implementation
    dataset = dataset.map(func, dim=dim, **kwargs)
xarray/core/dataset.py:7172: in map
    k: maybe_wrap_array(v, func(v, *args, **kwargs))
xarray/core/weighted.py:316: in _weighted_std
    return cast("T_DataArray", np.sqrt(self._weighted_var(da, dim, skipna)))
xarray/core/arithmetic.py:83: in __array_ufunc__
    return apply_ufunc(
xarray/core/computation.py:1271: in apply_ufunc
    return apply_dataarray_vfunc(
xarray/core/computation.py:313: in apply_dataarray_vfunc
    result_var = func(*data_vars)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

func = <ufunc 'sqrt'>, signature = _UFuncSignature([()], [()])
exclude_dims = frozenset(), dask = 'allowed', output_dtypes = None

    def apply_variable_ufunc(
        func,
        *args,
        signature: _UFuncSignature,
        exclude_dims=frozenset(),
        dask="forbidden",
        output_dtypes=None,
        vectorize=False,
        keep_attrs="override",
        dask_gufunc_kwargs=None,
    ) -> Variable | tuple[Variable, ...]:
        """Apply a ndarray level function over Variable and/or ndarray 
objects."""
        from xarray.core.formatting import short_array_repr
        from xarray.core.variable import Variable, as_compatible_data
    
        dim_sizes = unified_dim_sizes(
            (a for a in args if hasattr(a, "dims")), exclude_dims=exclude_dims
        )
        broadcast_dims = tuple(
            dim for dim in dim_sizes if dim not in signature.all_core_dims
        )
        output_dims = [broadcast_dims + out for out in 
signature.output_core_dims]
    
        input_data = [
            (
                broadcast_compat_data(arg, broadcast_dims, core_dims)
                if isinstance(arg, Variable)
                else arg
            )
            for arg, core_dims in zip(args, signature.input_core_dims, 
strict=True)
        ]
    
        if any(is_chunked_array(array) for array in input_data):
            if dask == "forbidden":
                raise ValueError(
                    "apply_ufunc encountered a chunked array on an "
                    "argument, but handling for chunked arrays has not "
                    "been enabled. Either set the ``dask`` argument "
                    "or load your data into memory first with "
                    "``.load()`` or ``.compute()``"
                )
            elif dask == "parallelized":
                chunkmanager = get_chunked_array_type(*input_data)
    
                numpy_func = func
    
                if dask_gufunc_kwargs is None:
                    dask_gufunc_kwargs = {}
                else:
                    dask_gufunc_kwargs = dask_gufunc_kwargs.copy()
    
                allow_rechunk = dask_gufunc_kwargs.get("allow_rechunk", None)
                if allow_rechunk is None:
                    for n, (data, core_dims) in enumerate(
                        zip(input_data, signature.input_core_dims, strict=True)
                    ):
                        if is_chunked_array(data):
                            # core dimensions cannot span multiple chunks
                            for axis, dim in enumerate(core_dims, 
start=-len(core_dims)):
                                if len(data.chunks[axis]) != 1:
                                    raise ValueError(
                                        f"dimension {dim} on {n}th function 
argument to "
                                        "apply_ufunc with dask='parallelized' 
consists of "
                                        "multiple chunks, but is also a core 
dimension. To "
                                        "fix, either rechunk into a single 
array chunk along "
                                        f"this dimension, i.e., 
``.chunk(dict({dim}=-1))``, or "
                                        "pass ``allow_rechunk=True`` in 
``dask_gufunc_kwargs`` "
                                        "but beware that this may significantly 
increase memory usage."
                                    )
                    dask_gufunc_kwargs["allow_rechunk"] = True
    
                output_sizes = dask_gufunc_kwargs.pop("output_sizes", {})
                if output_sizes:
                    output_sizes_renamed = {}
                    for key, value in output_sizes.items():
                        if key not in signature.all_output_core_dims:
                            raise ValueError(
                                f"dimension '{key}' in 'output_sizes' must 
correspond to output_core_dims"
                            )
                        output_sizes_renamed[signature.dims_map[key]] = value
                    dask_gufunc_kwargs["output_sizes"] = output_sizes_renamed
    
                for key in signature.all_output_core_dims:
                    if (
                        key not in signature.all_input_core_dims or key in 
exclude_dims
                    ) and key not in output_sizes:
                        raise ValueError(
                            f"dimension '{key}' in 'output_core_dims' needs 
corresponding (dim, size) in 'output_sizes'"
                        )
    
                def func(*arrays):
                    res = chunkmanager.apply_gufunc(
                        numpy_func,
                        signature.to_gufunc_string(exclude_dims),
                        *arrays,
                        vectorize=vectorize,
                        output_dtypes=output_dtypes,
                        **dask_gufunc_kwargs,
                    )
    
                    return res
    
            elif dask == "allowed":
                pass
            else:
                raise ValueError(
                    f"unknown setting for chunked array handling in 
apply_ufunc: {dask}"
                )
        else:
            if vectorize:
                func = _vectorize(
                    func, signature, output_dtypes=output_dtypes, 
exclude_dims=exclude_dims
                )
    
>       result_data = func(*input_data)
E       RuntimeWarning: invalid value encountered in sqrt

xarray/core/computation.py:824: RuntimeWarning
_______________ test_weighted_operations_keep_attr_da_in_ds[std] _______________

operation = 'std'

    @pytest.mark.parametrize(
        "operation",
        ("sum_of_weights", "sum", "mean", "sum_of_squares", "var", "std", 
"quantile"),
    )
    def test_weighted_operations_keep_attr_da_in_ds(operation):
        # GH #3595
    
        weights = DataArray(np.random.randn(2, 2))
        data = DataArray(np.random.randn(2, 2), attrs=dict(attr="data"))
        data = data.to_dataset(name="a")
    
        kwargs = {"keep_attrs": True}
        if operation == "quantile":
            kwargs["q"] = 0.5
    
>       result = getattr(data.weighted(weights), operation)(**kwargs)

xarray/tests/test_weighted.py:768: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
xarray/core/weighted.py:517: in std
    return self._implementation(
xarray/core/weighted.py:554: in _implementation
    return self.obj.map(func, dim=dim, **kwargs)
xarray/core/dataset.py:7172: in map
    k: maybe_wrap_array(v, func(v, *args, **kwargs))
xarray/core/weighted.py:316: in _weighted_std
    return cast("T_DataArray", np.sqrt(self._weighted_var(da, dim, skipna)))
xarray/core/arithmetic.py:83: in __array_ufunc__
    return apply_ufunc(
xarray/core/computation.py:1271: in apply_ufunc
    return apply_dataarray_vfunc(
xarray/core/computation.py:313: in apply_dataarray_vfunc
    result_var = func(*data_vars)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

func = <ufunc 'sqrt'>, signature = _UFuncSignature([()], [()])
exclude_dims = frozenset(), dask = 'allowed', output_dtypes = None

    def apply_variable_ufunc(
        func,
        *args,
        signature: _UFuncSignature,
        exclude_dims=frozenset(),
        dask="forbidden",
        output_dtypes=None,
        vectorize=False,
        keep_attrs="override",
        dask_gufunc_kwargs=None,
    ) -> Variable | tuple[Variable, ...]:
        """Apply a ndarray level function over Variable and/or ndarray 
objects."""
        from xarray.core.formatting import short_array_repr
        from xarray.core.variable import Variable, as_compatible_data
    
        dim_sizes = unified_dim_sizes(
            (a for a in args if hasattr(a, "dims")), exclude_dims=exclude_dims
        )
        broadcast_dims = tuple(
            dim for dim in dim_sizes if dim not in signature.all_core_dims
        )
        output_dims = [broadcast_dims + out for out in 
signature.output_core_dims]
    
        input_data = [
            (
                broadcast_compat_data(arg, broadcast_dims, core_dims)
                if isinstance(arg, Variable)
                else arg
            )
            for arg, core_dims in zip(args, signature.input_core_dims, 
strict=True)
        ]
    
        if any(is_chunked_array(array) for array in input_data):
            if dask == "forbidden":
                raise ValueError(
                    "apply_ufunc encountered a chunked array on an "
                    "argument, but handling for chunked arrays has not "
                    "been enabled. Either set the ``dask`` argument "
                    "or load your data into memory first with "
                    "``.load()`` or ``.compute()``"
                )
            elif dask == "parallelized":
                chunkmanager = get_chunked_array_type(*input_data)
    
                numpy_func = func
    
                if dask_gufunc_kwargs is None:
                    dask_gufunc_kwargs = {}
                else:
                    dask_gufunc_kwargs = dask_gufunc_kwargs.copy()
    
                allow_rechunk = dask_gufunc_kwargs.get("allow_rechunk", None)
                if allow_rechunk is None:
                    for n, (data, core_dims) in enumerate(
                        zip(input_data, signature.input_core_dims, strict=True)
                    ):
                        if is_chunked_array(data):
                            # core dimensions cannot span multiple chunks
                            for axis, dim in enumerate(core_dims, 
start=-len(core_dims)):
                                if len(data.chunks[axis]) != 1:
                                    raise ValueError(
                                        f"dimension {dim} on {n}th function 
argument to "
                                        "apply_ufunc with dask='parallelized' 
consists of "
                                        "multiple chunks, but is also a core 
dimension. To "
                                        "fix, either rechunk into a single 
array chunk along "
                                        f"this dimension, i.e., 
``.chunk(dict({dim}=-1))``, or "
                                        "pass ``allow_rechunk=True`` in 
``dask_gufunc_kwargs`` "
                                        "but beware that this may significantly 
increase memory usage."
                                    )
                    dask_gufunc_kwargs["allow_rechunk"] = True
    
                output_sizes = dask_gufunc_kwargs.pop("output_sizes", {})
                if output_sizes:
                    output_sizes_renamed = {}
                    for key, value in output_sizes.items():
                        if key not in signature.all_output_core_dims:
                            raise ValueError(
                                f"dimension '{key}' in 'output_sizes' must 
correspond to output_core_dims"
                            )
                        output_sizes_renamed[signature.dims_map[key]] = value
                    dask_gufunc_kwargs["output_sizes"] = output_sizes_renamed
    
                for key in signature.all_output_core_dims:
                    if (
                        key not in signature.all_input_core_dims or key in 
exclude_dims
                    ) and key not in output_sizes:
                        raise ValueError(
                            f"dimension '{key}' in 'output_core_dims' needs 
corresponding (dim, size) in 'output_sizes'"
                        )
    
                def func(*arrays):
                    res = chunkmanager.apply_gufunc(
                        numpy_func,
                        signature.to_gufunc_string(exclude_dims),
                        *arrays,
                        vectorize=vectorize,
                        output_dtypes=output_dtypes,
                        **dask_gufunc_kwargs,
                    )
    
                    return res
    
            elif dask == "allowed":
                pass
            else:
                raise ValueError(
                    f"unknown setting for chunked array handling in 
apply_ufunc: {dask}"
                )
        else:
            if vectorize:
                func = _vectorize(
                    func, signature, output_dtypes=output_dtypes, 
exclude_dims=exclude_dims
                )
    
>       result_data = func(*input_data)
E       RuntimeWarning: invalid value encountered in sqrt

xarray/core/computation.py:824: RuntimeWarning
=============================== warnings summary ===============================
xarray/tests/test_backends.py: 722 warnings
  /usr/lib/python3/dist-packages/zarr/api/asynchronous.py:203: UserWarning: 
Consolidated metadata is currently not part in the Zarr format 3 specification. 
It may not be supported by other zarr implementations and may change in the 
future.
    warnings.warn(

xarray/tests/test_backends.py: 896 warnings
  /usr/lib/python3/dist-packages/zarr/codecs/vlen_utf8.py:44: UserWarning: The 
codec `vlen-utf8` is currently not part in the Zarr format 3 specification. It 
may not be supported by other zarr implementations and may change in the future.
    return cls(**configuration_parsed)

xarray/tests/test_backends.py: 171 warnings
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `<U1` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py: 217 warnings
  /usr/lib/python3/dist-packages/zarr/codecs/vlen_utf8.py:99: UserWarning: The 
codec `vlen-bytes` is currently not part in the Zarr format 3 specification. It 
may not be supported by other zarr implementations and may change in the future.
    return cls(**configuration_parsed)

xarray/tests/test_backends.py::TestZarrDictStore::test_zero_dimensional_variable[3]
xarray/tests/test_backends.py::TestZarrDirectoryStore::test_zero_dimensional_variable[3]
xarray/tests/test_backends.py::TestZarrWriteEmpty::test_zero_dimensional_variable[3]
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `|S6` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py::TestZarrDictStore::test_zero_dimensional_variable[3]
xarray/tests/test_backends.py::TestZarrDirectoryStore::test_zero_dimensional_variable[3]
xarray/tests/test_backends.py::TestZarrWriteEmpty::test_zero_dimensional_variable[3]
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `<U6` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py: 18 warnings
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `|S4` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py: 48 warnings
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `StringDType()` is currently not part in the Zarr format 3 specification. 
It may not be supported by other zarr implementations and may change in the 
future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py::TestZarrDictStore::test_roundtrip_string_data[3]
xarray/tests/test_backends.py::TestZarrDirectoryStore::test_roundtrip_string_data[3]
xarray/tests/test_backends.py::TestZarrWriteEmpty::test_roundtrip_string_data[3]
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `<U4` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py: 33 warnings
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `<U2` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py: 33 warnings
  /usr/lib/python3/dist-packages/zarr/core/array.py:3989: UserWarning: The 
dtype `|S2` is currently not part in the Zarr format 3 specification. It may 
not be supported by other zarr implementations and may change in the future.
    meta = AsyncArray._create_metadata_v3(

xarray/tests/test_backends.py::TestH5NetCDFFileObject::test_open_fileobj
  /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85: 
PytestUnraisableExceptionWarning: Exception ignored in: <function 
CachingFileManager.__del__ at 0x7f4a3f4bafc0>
  
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/backends/file_manager.py",
 line 255, in __del__
      warnings.warn(
      ~~~~~~~~~~~~~^
          f"deallocating {self}, but file is not already closed. "
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ...<2 lines>...
          stacklevel=2,
          ^^^^^^^^^^^^^
      )
      ^
  RuntimeWarning: deallocating CachingFileManager(<class 'h5netcdf.core.File'>, 
<_io.BufferedReader name='/tmp/tmpo1h3uc_h/temp-2487.nc'>, mode='r', 
kwargs={'invalid_netcdf': None, 'decode_vlen_strings': True, 'driver': None}, 
manager_id='58f3b5b1-d353-4530-a4b1-d54ea76f5452'), but file is not already 
closed. This may indicate a bug.
  
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

xarray/tests/test_backends.py::test_h5netcdf_storage_options
  /usr/lib/python3/dist-packages/_pytest/python.py:159: RuntimeWarning: 
deallocating CachingFileManager(<class 'h5netcdf.core.File'>, 
<fsspec.implementations.local.LocalFileOpener object at 0x7f4a2a2625f0>, 
mode='r', kwargs={'invalid_netcdf': None, 'decode_vlen_strings': True, 
'driver': None}, manager_id='5b831278-e650-4485-835b-9372ce9ae114'), but file 
is not already closed. This may indicate a bug.
    result = testfunction(**testargs)

xarray/tests/test_backends.py::test_h5netcdf_storage_options
  /usr/lib/python3/dist-packages/_pytest/python.py:159: RuntimeWarning: 
deallocating CachingFileManager(<class 'h5netcdf.core.File'>, 
<fsspec.implementations.local.LocalFileOpener object at 0x7f4a2a263100>, 
mode='r', kwargs={'invalid_netcdf': None, 'decode_vlen_strings': True, 
'driver': None}, manager_id='4b681f13-bb3a-48e9-80af-2783a46dd492'), but file 
is not already closed. This may indicate a bug.
    result = testfunction(**testargs)

xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]
xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/tests/test_coding_times.py:1295:
 UserWarning: Converting non-nanosecond precision datetime values to nanosecond 
precision. This behavior can eventually be relaxed in xarray, as it is an 
artifact from pandas which is now beginning to support non-nanosecond precision 
values. This warning is caused by passing non-nanosecond np.datetime64 or 
np.timedelta64 values to the DataArray or Variable constructor; it can be 
silenced by converting the values to nanosecond precision ahead of time.
    var = Variable(["time"], times, encoding=encoding)

xarray/tests/test_computation.py::test_unified_dim_sizes
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/namedarray/core.py:264:
 UserWarning: Duplicate dimension names present: dimensions {'x'} appear more 
than once in dims=('x', 'x'). We do not yet support duplicate dimension names, 
but we do allow initial construction of the object. We recommend you rename the 
dims immediately to become distinct, as most xarray functionality is likely to 
fail silently if you do not. To rename the dimensions you will need to set the 
``.dims`` attribute of each variable, ``e.g. var.dims=('x0', 'x1')``.
    self._dims = self._parse_dimensions(dims)

xarray/tests/test_conventions.py: 1 warning
xarray/tests/test_dataset.py: 1 warning
xarray/tests/test_rolling.py: 36 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/core/duck_array_ops.py:234:
 RuntimeWarning: invalid value encountered in cast
    return data.astype(dtype, **kwargs)

xarray/tests/test_dask.py: 12 warnings
  /usr/lib/python3/dist-packages/numpy/_core/numeric.py:442: RuntimeWarning: 
invalid value encountered in cast
    multiarray.copyto(res, fill_value, casting='unsafe')

xarray/tests/test_dataset.py::TestDataset::test_to_and_from_dict_with_nan_nat[array]
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/tests/test_dataset.py:5170:
 UserWarning: Converting non-nanosecond precision datetime values to nanosecond 
precision. This behavior can eventually be relaxed in xarray, as it is an 
artifact from pandas which is now beginning to support non-nanosecond precision 
values. This warning is caused by passing non-nanosecond np.datetime64 or 
np.timedelta64 values to the DataArray or Variable constructor; it can be 
silenced by converting the values to nanosecond precision ahead of time.
    roundtripped = Dataset.from_dict(ds.to_dict(data=data))

xarray/tests/test_duck_array_ops.py::test_cftime_datetime_mean[True]
  /usr/lib/python3/dist-packages/dask/array/core.py:5083: DeprecationWarning: 
Bitwise inversion '~' on bool is deprecated and will be removed in Python 3.16. 
This returns the bitwise inversion of the underlying int object and is usually 
not what you expect from negating a bool. Use the 'not' operator for boolean 
negation or ~int(x) if you really want the bitwise inversion of the underlying 
int.
    result = function(*args, **kwargs)

xarray/tests/test_strategies.py: 10 warnings
  /usr/lib/python3/dist-packages/numpy/_core/fromnumeric.py:86: RuntimeWarning: 
invalid value encountered in reduce
    return ufunc.reduce(obj, axis, dtype, out, **passkwargs)

xarray/tests/test_strategies.py::TestReduction::test_mean
xarray/tests/test_strategies.py::TestReduction::test_mean
xarray/tests/test_strategies.py::TestReduction::test_mean
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/tests/test_strategies.py:277:
 RuntimeWarning: Mean of empty slice
    expected = np.nanmean(var.data, axis=reduction_axes)

xarray/tests/test_variable.py::TestIndexVariable::test_to_index_multiindex_level
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build/xarray/tests/test_variable.py:2435:
 FutureWarning: the `pandas.MultiIndex` object(s) passed as 'x' coordinate(s) 
or data variable(s) will no longer be implicitly promoted and wrapped into 
multiple indexed coordinates in the future (i.e., one coordinate for each 
multi-index level + one dimension coordinate). If you want to keep this 
behavior, you need to first wrap it explicitly using `mindex_coords = 
xarray.Coordinates.from_pandas_multiindex(mindex_obj, 'dim')` and pass it as 
coordinates, e.g., `xarray.Dataset(coords=mindex_coords)`, 
`dataset.assign_coords(mindex_coords)` or 
`dataarray.assign_coords(mindex_coords)`.
    ds = Dataset(coords={"x": midx})

xarray/tests/test_weighted.py::test_weighted_quantile_3D[None-True-q1-a]
xarray/tests/test_weighted.py::test_weighted_quantile_3D[None-True-q2-a]
  /usr/lib/python3/dist-packages/numpy/lib/_nanfunctions_impl.py:1620: 
RuntimeWarning: All-NaN slice encountered
    return fnb._ureduce(a,

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
xarray/tests/test_backends.py::TestZarrDictStore::test_hidden_zarr_keys[2]
FAILED 
xarray/tests/test_backends.py::TestZarrDirectoryStore::test_hidden_zarr_keys[2]
FAILED 
xarray/tests/test_backends.py::TestZarrWriteEmpty::test_hidden_zarr_keys[2]
FAILED xarray/tests/test_groupby.py::test_dask_da_groupby_quantile - Failed: ...
FAILED 
xarray/tests/test_weighted.py::test_weighted_operations_keep_attr[False-True-std]
FAILED 
xarray/tests/test_weighted.py::test_weighted_operations_keep_attr[False-False-std]
FAILED 
xarray/tests/test_weighted.py::test_weighted_operations_keep_attr[None-True-std]
FAILED 
xarray/tests/test_weighted.py::test_weighted_operations_keep_attr[None-False-std]
FAILED 
xarray/tests/test_weighted.py::test_weighted_operations_keep_attr_da_in_ds[std]
= 9 failed, 16789 passed, 1293 skipped, 73 xfailed, 107 xpassed, 2221 warnings 
in 234.58s (0:03:54) =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_xarray/build; python3.13 -m pytest 
# cleanup after tests
find .  -name 'tmp.zarr*' -delete
find: cannot delete ‘./.pybuild/cpython3_3.13_xarray/build/tmp.zarr.zip’: 
Directory not empty
make[1]: *** [debian/rules:43: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:19: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202503/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:python-xarray, so that this is still
visible in the BTS web page for this package.

Thanks.

Reply via email to