Skip to content

ensure comparison returns bool instead of np.bool#3333

Merged
NilsNemitz merged 2 commits intopyqtgraph:masterfrom
pijyoi:fix-numpy230-compat
Jun 21, 2025
Merged

ensure comparison returns bool instead of np.bool#3333
NilsNemitz merged 2 commits intopyqtgraph:masterfrom
pijyoi:fix-numpy230-compat

Conversation

@pijyoi
Copy link
Copy Markdown
Contributor

@pijyoi pijyoi commented Jun 20, 2025

Numpy 2.3.0 includes an expired deprecation: numpy/numpy#28254
'np.bool' scalars can no longer be interpreted as an index (deprecated since 1.19)

This triggers an error in pg.TableWidget when a structured array is used, as demonstrated by the TableWidget example itself. (https://github.com/pyqtgraph/pyqtgraph/blob/master/pyqtgraph/examples/TableWidget.py)

On PyQt6:
TypeError: invalid result from TableWidgetItem.__lt__(), a 'bool' is expected not 'numpy.bool'

On PySide6:
TypeError: 'numpy.bool' object cannot be interpreted as an integer

@pijyoi pijyoi force-pushed the fix-numpy230-compat branch from 2b1352c to eb440f5 Compare June 21, 2025 04:25
@NilsNemitz NilsNemitz merged commit 342c630 into pyqtgraph:master Jun 21, 2025
36 checks passed
@pijyoi pijyoi deleted the fix-numpy230-compat branch June 21, 2025 12:34
@pijyoi
Copy link
Copy Markdown
Contributor Author

pijyoi commented Jun 22, 2025

Following is an MWE that demonstrates the error when upgrading to NumPy 2.3.0

import numpy as np
from PySide6 import QtCore, QtWidgets

class Item(QtWidgets.QTableWidgetItem):
    def __init__(self, value):
        super().__init__(str(value))
        self.value = value

    def __lt__(self, other):
        return self.value < other.value

data = np.arange(10).reshape((5, 2))
nrows, ncols = data.shape

app = QtWidgets.QApplication([])
wgt = QtWidgets.QTableWidget(nrows, ncols)

for row in range(nrows):
    for col in range(ncols):
        wgt.setItem(row, col, Item(data[row, col]))

wgt.sortByColumn(0, QtCore.Qt.SortOrder.DescendingOrder)

wgt.show()
app.exec()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants