Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Regression with NumPy 2.4 #97

Copy link
Copy link

Description

@avalentino
Issue body actions

Apparently numpy-groipies seems to cause several failures in the flox (https://github.com/xarray-contrib/flox) test suite due to incompatibilities with NumPy >= 2.4 (see also xarray-contrib/flox#513).

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.

On GNU/Linux the full flox 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

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.