Skip to content

regression with NumPy 2.4 #513

Description

@avalentino

The unit-test suite fails with recent numpy version (test executed on GNU/Linux).

122 tests fail, and for most of them the error message is like the following:

___________________________________________________________________________ test_groupby_reduce_all[flox-mode-True-1-size0--1-False] ____________________________________________________________________________
TypeError: only 0-dimensional arrays can be converted to Python scalars

The above exception was the direct cause of the following exception:
tests/test_core.py:315: in test_groupby_reduce_all
    assert_equal(expected, actual, tolerance)
.venv/lib/python3.14/site-packages/dask/base.py:392: in compute
    (result,) = compute(self, traverse=False, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14/site-packages/dask/base.py:769: in compute
    results = schedule(expr, keys, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flox/core.py:502: in _reduce_blockwise
    results = chunk_reduce(
flox/core.py:368: in chunk_reduce
    result = generic_aggregate(
flox/aggregations.py:124: in generic_aggregate
    result = method(
flox/aggregate_npg.py:195: in mode
    return npg.aggregate_numpy.aggregate(
.venv/lib/python3.14/site-packages/numpy_groupies/aggregate_numpy.py:381: in aggregate
    return _aggregate_base(
.venv/lib/python3.14/site-packages/numpy_groupies/aggregate_numpy.py:331: in _aggregate_base
    ret = _impl_dict.get("generic", _generic_callable)(
.venv/lib/python3.14/site-packages/numpy_groupies/aggregate_numpy.py:240: in _generic_callable
    ret[i] = func(grp)
    ^^^^^^
E   ValueError: setting an array element with a sequence.

The ful test summary is:

                                                                 Summary of Failures
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃  File                ┃  Function                                                         ┃  Function Line  ┃  Error Line  ┃  Error                 ┃
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-1-size0--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-1-size1--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-1-size2--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-2-size0--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-2-size1--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-2-size2--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-3-size0--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-3-size1--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-True-3-size2--1-False]         │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-1-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-1-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-1-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-2-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-2-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-2-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-3-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-3-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-mode-False-3-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-1-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-1-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-1-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-2-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-2-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-2-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-3-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-3-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-True-3-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-1-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-1-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-1-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-2-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-2-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-2-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-3-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-3-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[flox-nanmode-False-3-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[flox-blockwise-None-mode]                     │  1178           │  1211        │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[flox-blockwise-None-nanmode]                  │  1178           │  1211        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[flox-float32-mode]                                    │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[flox-float32-nanmode]                                 │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[flox-float64-mode]                                    │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[flox-float64-nanmode]                                 │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-1-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-1-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-1-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-2-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-2-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-2-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-3-size0--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-3-size1--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-True-3-size2--1-False]        │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-1-size0--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-1-size1--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-1-size2--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-2-size0--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-2-size1--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-2-size2--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-3-size0--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-3-size1--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-mode-False-3-size2--1-False]       │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-1-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-1-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-1-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-2-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-2-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-2-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-3-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-3-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-True-3-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-1-size0--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-1-size1--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-1-size2--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-2-size0--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-2-size1--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-2-size2--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-3-size0--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-3-size1--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numpy-nanmode-False-3-size2--1-False]    │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[numpy-blockwise-None-mode]                    │  1178           │  1211        │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[numpy-blockwise-None-nanmode]                 │  1178           │  1211        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[numpy-float32-mode]                                   │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[numpy-float32-nanmode]                                │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[numpy-float64-mode]                                   │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_dtype[numpy-float64-nanmode]                                │  1551           │  1564        │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-1-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-1-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-1-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-2-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-2-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-2-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-3-size0--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-3-size1--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-True-3-size2--1-False]      │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-1-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-1-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-1-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-2-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-2-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-2-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-3-size0--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-3-size1--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-mode-False-3-size2--1-False]     │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-1-size0--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-1-size1--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-1-size2--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-2-size0--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-2-size1--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-2-size2--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-3-size0--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-3-size1--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-True-3-size2--1-False]   │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-1-size0--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-1-size1--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-1-size2--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-2-size0--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-2-size1--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-2-size2--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-3-size0--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-3-size1--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_groupby_reduce_all[numbagg-nanmode-False-3-size2--1-False]  │  222            │  315         │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[numbagg-blockwise-None-mode]                  │  1178           │  1211        │  in _generic_callable  │
│  tests/test_core.py  │  test_cohorts_nd_by[numbagg-blockwise-None-nanmode]               │  1178           │  1211        │  in _generic_callable  │
└──────────────────────┴───────────────────────────────────────────────────────────────────┴─────────────────┴──────────────┴────────────────────────┘
Results (1196.91s):
       122 failed
     10888 passed
      8264 skipped
       156 xfailed
         3 xpassed
      1301 warnings

See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1142098

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions