• Bug#1103108: python-numpy-groupies: FTBFS in testing/i386: make[1]: ***

    From Lucas Nussbaum@21:1/5 to All on Mon Apr 14 13:50:06 2025
    Source: python-numpy-groupies
    Version: 0.10.2-1
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20250414 ftbfs-trixie

    Hi,

    During a rebuild of all packages in testing (trixie), your package failed
    to build on i386.


    Relevant part (hopefully):
    make[1]: Entering directory '/build/reproducible-path/python-numpy-groupies-0.10.2'
    pytest-3 -rls
    ============================= test session starts ==============================
    platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
    rootdir: /build/reproducible-path/python-numpy-groupies-0.10.2
    configfile: pyproject.toml
    plugins: typeguard-4.4.2
    collected 1117 items / 260 deselected / 857 selected

    numpy_groupies/tests/test_compare.py ..............s..s...........s..s.. [ 4%]
    sssssss..................sssssssss...ssssss......sssssssssssssssssssssss [ 12%]
    ssssssssssssssss....ssssssssssssssssssssssssssssssssssssssssssssssssssss [ 20%]
    sssssssssssssssssssssssssssssssss...........................FF.......... [ 29%]
    ......sss.....................FF.ss.ss.sss.... [ 34%]
    numpy_groupies/tests/test_generic.py .......................sss......... [ 38%]
    ..............s.s.s....s...s......................................s....s [ 47%]
    s..........ssssss..................ssssss...................sss......... [ 55%]
    ..........sss.........sssssss...s.s..s.ss.s.s.......s...s..ss..s.sss...s [ 63%]
    s..ss..ss..ss..................sssssssss...ssssss......sssssssssssssssss [ 72%]
    ssssssssssssssssssssss.................................................. [ 80%]
    ........................................................................ [ 89%]
    ....sss..............................ssss..s..s..s.sssssssssssss........ [ 97%]
    ................ [ 99%]
    numpy_groupies/tests/test_indices.py ss [ 99%]
    numpy_groupies/tests/test_utils.py ... [100%]

    =================================== FAILURES ===================================
    __________________________ test_cmp[pandas/np-len-0] ___________________________

    aggregate_cmp = {'request': <SubRequest 'aggregate_cmp' for <Function test_cmp[pandas/np-sum-0]>>, 'seed': 100, 'test_pair': 'pandas/n..., 'somea': array([ nan, 0. , 0.51545692, ..., 1.51932228, 0. ,
    0.87432034], shape=(20000,))}
    func = 'len', fill_value = 0, decimal = 10

    @pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
    @pytest.mark.deselect_if(func=_deselect_purepy_nanfuncs)
    @pytest.mark.parametrize("fill_value", [0, 1, np.nan])
    @pytest.mark.parametrize("func", func_list, ids=lambda x: getattr(x, "__name__", x))
    def test_cmp(aggregate_cmp, func, fill_value, decimal=10):
    is_nanfunc = "nan" in getattr(func, "__name__", func)
    a = aggregate_cmp.nana if is_nanfunc else aggregate_cmp.a
    try:
    ref = aggregate_cmp.func_ref(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    with pytest.raises(ValueError):
    aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    else:
    try:
    res = aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    if np.isnan(fill_value) and aggregate_cmp.test_pair.endswith("py"):
    pytest.skip(
    "pure python version uses lists and does not raise ValueErrors when inserting nan into integers"
    )
    else:
    raise
    if isinstance(ref, np.ndarray):
    assert res.dtype == ref.dtype
    E AssertionError: assert dtype('int64') == dtype('int32')
    E + where dtype('int64') = array([20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, ... 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
    20, 20, 20],\n dtype=int64).dtype
    E + and dtype('int32') = array([20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, ...20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20,
    20, 20, 20, 20, 20, 20, 20, 20]).dtype

    numpy_groupies/tests/test_compare.py:122: AssertionError __________________________ test_cmp[pandas/np-len-1] ___________________________

    aggregate_cmp = {'request': <SubRequest 'aggregate_cmp' for <Function test_cmp[pandas/np-sum-0]>>, 'seed': 100, 'test_pair': 'pandas/n..., 'somea': array([ nan, 0. , 0.51545692, ..., 1.51932228, 0. ,
    0.87432034], shape=(20000,))}
    func = 'len', fill_value = 1, decimal = 10

    @pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
    @pytest.mark.deselect_if(func=_deselect_purepy_nanfuncs)
    @pytest.mark.parametrize("fill_value", [0, 1, np.nan])
    @pytest.mark.parametrize("func", func_list, ids=lambda x: getattr(x, "__name__", x))
    def test_cmp(aggregate_cmp, func, fill_value, decimal=10):
    is_nanfunc = "nan" in getattr(func, "__name__", func)
    a = aggregate_cmp.nana if is_nanfunc else aggregate_cmp.a
    try:
    ref = aggregate_cmp.func_ref(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    with pytest.raises(ValueError):
    aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    else:
    try:
    res = aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    if np.isnan(fill_value) and aggregate_cmp.test_pair.endswith("py"):
    pytest.skip(
    "pure python version uses lists and does not raise ValueErrors when inserting nan into integers"
    )
    else:
    raise
    if isinstance(ref, np.ndarray):
    assert res.dtype == ref.dtype
    E AssertionError: assert dtype('int64') == dtype('int32')
    E + where dtype('int64') = array([20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, ... 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
    20, 20, 20],\n dtype=int64).dtype
    E + and dtype('int32') = array([20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20, 20, 20, 20, ...20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n 20, 20, 20, 20, 20, 20,
    20, 20, 20, 20, 20, 20, 20, 20]).dtype

    numpy_groupies/tests/test_compare.py:122: AssertionError _________________________ test_cmp[pandas/np-nanlen-0] _________________________

    aggregate_cmp = {'request': <SubRequest 'aggregate_cmp' for <Function test_cmp[pandas/np-sum-0]>>, 'seed': 100, 'test_pair': 'pandas/n..., 'somea': array([ nan, 0. , 0.51545692, ..., 1.51932228, 0. ,
    0.87432034], shape=(20000,))}
    func = 'nanlen', fill_value = 0, decimal = 10

    @pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
    @pytest.mark.deselect_if(func=_deselect_purepy_nanfuncs)
    @pytest.mark.parametrize("fill_value", [0, 1, np.nan])
    @pytest.mark.parametrize("func", func_list, ids=lambda x: getattr(x, "__name__", x))
    def test_cmp(aggregate_cmp, func, fill_value, decimal=10):
    is_nanfunc = "nan" in getattr(func, "__name__", func)
    a = aggregate_cmp.nana if is_nanfunc else aggregate_cmp.a
    try:
    ref = aggregate_cmp.func_ref(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    with pytest.raises(ValueError):
    aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    else:
    try:
    res = aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    if np.isnan(fill_value) and aggregate_cmp.test_pair.endswith("py"):
    pytest.skip(
    "pure python version uses lists and does not raise ValueErrors when inserting nan into integers"
    )
    else:
    raise
    if isinstance(ref, np.ndarray):
    assert res.dtype == ref.dtype
    E AssertionError: assert dtype('int64') == dtype('int32')
    E + where dtype('int64') = array([12, 13, 7, 13, 0, 6, 7, 14, 7, 7, 14, 0, 0, 7, 0, 0, 7,\n 14, 14, 14, 0, 0, 0, 7, 6, 0, ... 14, 7, 7, 0, 7, 6, 6, 14, 6,\n 7, 6, 0, 7, 6, 0, 12, 14, 0, 7, 7,
    13, 7, 0],\n dtype=int64).dtype
    E + and dtype('int32') = array([12, 13, 7, 13, 0, 6, 7, 14, 7, 7, 14, 0, 0, 7, 0, 0, 7,\n 14, 14, 14, 0, 0, 0, 7, 6, 0, ... 6, 13, 0, 7, 7, 14, 7, 7, 0, 7, 6, 6, 14, 6,\n 7, 6, 0, 7, 6, 0,
    12, 14, 0, 7, 7, 13, 7, 0]).dtype

    numpy_groupies/tests/test_compare.py:122: AssertionError _________________________ test_cmp[pandas/np-nanlen-1] _________________________

    aggregate_cmp = {'request': <SubRequest 'aggregate_cmp' for <Function test_cmp[pandas/np-sum-0]>>, 'seed': 100, 'test_pair': 'pandas/n..., 'somea': array([ nan, 0. , 0.51545692, ..., 1.51932228, 0. ,
    0.87432034], shape=(20000,))}
    func = 'nanlen', fill_value = 1, decimal = 10

    @pytest.mark.filterwarnings("ignore:numpy.ufunc size changed")
    @pytest.mark.deselect_if(func=_deselect_purepy_nanfuncs)
    @pytest.mark.parametrize("fill_value", [0, 1, np.nan])
    @pytest.mark.parametrize("func", func_list, ids=lambda x: getattr(x, "__name__", x))
    def test_cmp(aggregate_cmp, func, fill_value, decimal=10):
    is_nanfunc = "nan" in getattr(func, "__name__", func)
    a = aggregate_cmp.nana if is_nanfunc else aggregate_cmp.a
    try:
    ref = aggregate_cmp.func_ref(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    with pytest.raises(ValueError):
    aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    else:
    try:
    res = aggregate_cmp.func(aggregate_cmp.group_idx, a, func=func, fill_value=fill_value)
    except ValueError:
    if np.isnan(fill_value) and aggregate_cmp.test_pair.endswith("py"):
    pytest.skip(
    "pure python version uses lists and does not raise ValueErrors when inserting nan into integers"
    )
    else:
    raise
    if isinstance(ref, np.ndarray):
    assert res.dtype == ref.dtype
    E AssertionError: assert dtype('int64') == dtype('int32')
    E + where dtype('int64') = array([12, 13, 7, 13, 1, 6, 7, 14, 7, 7, 14, 1, 1, 7, 1, 1, 7,\n 14, 14, 14, 1, 1, 1, 7, 6, 1, ... 14, 7, 7, 1, 7, 6, 6, 14, 6,\n 7, 6, 1, 7, 6, 1, 12, 14, 1, 7, 7,
    13, 7, 1],\n dtype=int64).dtype
    E + and dtype('int32') = array([12, 13, 7, 13, 1, 6, 7, 14, 7, 7, 14, 1, 1, 7, 1, 1, 7,\n 14, 14, 14, 1, 1, 1, 7, 6, 1, ... 6, 13, 1, 7, 7, 14, 7, 7, 1, 7, 6, 6, 14, 6,\n 7, 6, 1, 7, 6, 1,
    12, 14, 1, 7, 7, 13, 7, 1]).dtype

    numpy_groupies/tests/test_compare.py:122: AssertionError =============================== warnings summary ===============================
    numpy_groupies/tests/test_generic.py::test_ndim_group_idx[ufunc-None] numpy_groupies/tests/test_generic.py::test_ndim_group_idx[ufunc-size1] numpy_groupies/tests/test_generic.py::test_ndim_group_idx[numpy-None] numpy_groupies/tests/test_generic.py::test_ndim_group_idx[numpy-size1] numpy_groupies/tests/test_generic.py::test_ndim_group_idx[pandas-None] numpy_groupies/tests/test_generic.py::test_ndim_group_idx[pandas-size1]
    /build/reproducible-path/python-numpy-groupies-0.10.2/numpy_groupies/utils.py:308: RuntimeWarning: overflow encountered in scalar multiply
    maxval = np.iinfo(a_dtype).max * n

    -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================
    SKIPPED [5] numpy_groupies/tests/test_compare.py:116: pure python version uses lists and does not raise ValueErrors when inserting nan into integers
    SKIPPED [191] numpy_groupies/tests/__init__.py:55: Functionality not implemented
    SKIPPED [81] numpy_groupies/tests/test_compare.py:99: Implementation not available
    SKIPPED [4] numpy_groupies/tests/test_compare.py:132: Implementation not available
    SKIPPED [4] numpy_groupies/tests/test_compare.py:127: pandas doesn't fill indices for all-nan groups with fill_value, but with -inf instead
    SKIPPED [7] numpy_groupies/tests/test_generic.py:238: pandas always skips nan values
    SKIPPED [1] numpy_groupies/tests/test_generic.py:253: pandas always skips nan values
    SKIPPED [1] numpy_groupies/tests/test_generic.py:276: pandas always ignores nans
    SKIPPED [1] numpy_groupies/tests/test_generic.py:291: pandas doesn't fill indices for all-nan groups with fill_value but with -inf instead
    SKIPPED [1] numpy_groupies/tests/test_generic.py:511: pandas always skips nan values
    SKIPPED [1] numpy_groupies/tests/test_indices.py: got empty parameter set ['aggregate_nb_wv'], function test_step_indices_length at /build/reproducible-path/python-numpy-groupies-0.10.2/numpy_groupies/tests/test_indices.py:16
    SKIPPED [1] numpy_groupies/tests/test_indices.py: got empty parameter set ['aggregate_nb_wv'], function test_step_indices_fields at /build/reproducible-path/python-numpy-groupies-0.10.2/numpy_groupies/tests/test_indices.py:25
    ==== 4 failed, 555 passed, 298 skipped, 260 deselected, 6 warnings in 3.20s ====
    make[1]: *** [debian/rules:18: override_dh_auto_test] Error 1


    The full build log is available from: http://qa-logs.debian.net/2025/04/14/python-numpy-groupies_0.10.2-1_testing-i386.log

    All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250414;users=lucas@debian.org
    or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

    A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)