8000 ensure comparison returns bool instead of np.bool by pijyoi · Pull Request #3333 · pyqtgraph/pyqtgraph · GitHub
[go: up one dir, main page]

Skip to content

ensure comparison returns bool instead of np.bool #3333

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 21, 2025

Conversation

pijyoi
Copy link
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
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
0