Source: fast-histogram Version: 0.14-2 Severity: serious Tags: ftbfs Justification: FTBFS
Dear maintainer, During a test rebuild, fast-histogram failed to rebuild. ------------------------------------------------------------------------------- [...] I: pybuild base:311: cd /build/reproducible-path/fast-histogram-0.14/.pybuild/cpython3_3.13_fast-histogram/build; python3.13 -m pytest ============================= test session starts ============================== platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 rootdir: /build/reproducible-path/fast-histogram-0.14/.pybuild/cpython3_3.13_fast-histogram/build configfile: pyproject.toml plugins: hypothesis-6.124.0, typeguard-4.4.1 collected 11 items fast_histogram/tests/test_histogram.py F.......... [100%] =================================== FAILURES =================================== __________________________ test_1d_compare_with_numpy __________________________ @given( > size=st.integers(0, 50), nx=st.integers(1, 10), xmin=st.floats(-1e10, 1e10), xmax=st.floats(-1e10, 1e10), weights=st.booleans(), dtype=st.sampled_from([">f4", "<f4", ">f8", "<f8"]), ) fast_histogram/tests/test_histogram.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fast_histogram/tests/test_histogram.py:47: in test_1d_compare_with_numpy reference = np.histogram(x, bins=nx, weights=w, range=(xmin, xmax))[0] /usr/lib/python3/dist-packages/numpy/lib/_histograms_impl.py:796: in histogram bin_edges, uniform_bins = _get_bin_edges(a, bins, range, weights) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = array([], dtype='>f4'), bins = 2, range = (-1.401298464324817e-45, 0.0) weights = None def _get_bin_edges(a, bins, range, weights): """ Computes the bins used internally by `histogram`. Parameters ========== a : ndarray Ravelled data array bins, range Forwarded arguments from `histogram`. weights : ndarray, optional Ravelled weights array, or None Returns ======= bin_edges : ndarray Array of bin edges uniform_bins : (Number, Number, int): The upper bound, lowerbound, and number of bins, used in the optimized implementation of `histogram` that works on uniform bins. """ # parse the overloaded bins argument n_equal_bins = None bin_edges = None if isinstance(bins, str): bin_name = bins # if `bins` is a string for an automatic method, # this will replace it with the number of bins calculated if bin_name not in _hist_bin_selectors: raise ValueError( "{!r} is not a valid estimator for `bins`".format(bin_name)) if weights is not None: raise TypeError("Automated estimation of the number of " "bins is not supported for weighted data") first_edge, last_edge = _get_outer_edges(a, range) # truncate the range if needed if range is not None: keep = (a >= first_edge) keep &= (a <= last_edge) if not np.logical_and.reduce(keep): a = a[keep] if a.size == 0: n_equal_bins = 1 else: # Do not call selectors on empty arrays width = _hist_bin_selectors[bin_name](a, (first_edge, last_edge)) if width: if np.issubdtype(a.dtype, np.integer) and width < 1: width = 1 n_equal_bins = int(np.ceil(_unsigned_subtract(last_edge, first_edge) / width)) else: # Width can be zero for some estimators, e.g. FD when # the IQR of the data is zero. n_equal_bins = 1 elif np.ndim(bins) == 0: try: n_equal_bins = operator.index(bins) except TypeError as e: raise TypeError( '`bins` must be an integer, a string, or an array') from e if n_equal_bins < 1: raise ValueError('`bins` must be positive, when an integer') first_edge, last_edge = _get_outer_edges(a, range) elif np.ndim(bins) == 1: bin_edges = np.asarray(bins) if np.any(bin_edges[:-1] > bin_edges[1:]): raise ValueError( '`bins` must increase monotonically, when an array') else: raise ValueError('`bins` must be 1d, when an array') if n_equal_bins is not None: # gh-10322 means that type resolution rules are dependent on array # shapes. To avoid this causing problems, we pick a type now and stick # with it throughout. bin_type = np.result_type(first_edge, last_edge, a) if np.issubdtype(bin_type, np.integer): bin_type = np.result_type(bin_type, float) # bin edges must be computed bin_edges = np.linspace( first_edge, last_edge, n_equal_bins + 1, endpoint=True, dtype=bin_type) if np.any(bin_edges[:-1] >= bin_edges[1:]): > raise ValueError( f'Too many bins for data range. Cannot create {n_equal_bins} ' f'finite-sized bins.') E ValueError: Too many bins for data range. Cannot create 2 finite-sized bins. E Falsifying example: test_1d_compare_with_numpy( E # The test sometimes passed when commented parts were varied together. E size=0, # or any other generated value E nx=2, E xmin=-1.401298464324817e-45, E xmax=0.0, E weights=False, # or any other generated value E dtype='>f4', E ) E Explanation: E These lines were always and only run by failing examples: E /usr/lib/python3/dist-packages/numpy/lib/_histograms_impl.py:453 /usr/lib/python3/dist-packages/numpy/lib/_histograms_impl.py:453: ValueError =========================== short test summary info ============================ FAILED fast_histogram/tests/test_histogram.py::test_1d_compare_with_numpy - V... ======================== 1 failed, 10 passed in 12.75s ========================= E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/fast-histogram-0.14/.pybuild/cpython3_3.13_fast-histogram/build; python3.13 -m pytest dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.13" returned exit code 13 make: *** [debian/rules:9: binary-arch] Error 25 dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2 -------------------------------------------------------------------------------- Build finished at 2025-01-30T14:46:19Z ------------------------------------------------------------------------------- The above is just how the build ends and not necessarily the most relevant part. If required, the full build log is available here (for the next 30 days): https://debusine.debian.net/artifact/1242087/ About the archive rebuild: The build was made on debusine.debian.net, on arm64 using sbuild. You can find the build task here: https://debusine.debian.net/work-request/72029/ If this is really a bug in one of the build-depends, please use reassign and affects, so that this is still visible in the BTS web page for this package. Thanks, Stefano