Skip to content

Upgrade PyQt5→PyQt6, numpy v1→v2, Python 3.8→3.12, all dependencies#12

Draft
Copilot wants to merge 3 commits intodevfrom
copilot/update-dependencies-pyqt-numpy
Draft

Upgrade PyQt5→PyQt6, numpy v1→v2, Python 3.8→3.12, all dependencies#12
Copilot wants to merge 3 commits intodevfrom
copilot/update-dependencies-pyqt-numpy

Conversation

Copy link

Copilot AI commented Mar 13, 2026

Migrates Inlinino from PyQt5 to PyQt6 (and numpy v1 to v2), updating all dependencies to current stable versions compatible with Python 3.12 on Windows, macOS, and Linux.

Dependency Updates

  • PyQt5→PyQt6 6.7.x, pyqtgraph 0.12.1→0.13.7 (PyQt6 support, _generic template suffix)
  • numpy 1.22.x→2.2.x, scipy 1.9.x→1.15.x
  • wakepy 0.7.1→1.0.x, kaleido 0.2.1→1.x, plotly 5.13.x→6.x
  • pynmea2, pyusb, hidapi bumped to current releases
  • Python: ==3.8.*>=3.12,<4 in setup.py and CI workflow

PyQt6 Migration

QtMultimediaQMediaPlaylist/QMediaContent removed in Qt6; replaced with QSoundEffect:

# Before (PyQt5)
self.alarm_playlist = QtMultimedia.QMediaPlaylist(self.alarm_sound)
self.alarm_playlist.addMedia(QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile(f)))
self.alarm_playlist.setPlaybackMode(QtMultimedia.QMediaPlaylist.Loop)

# After (PyQt6)
self.alarm_sound = QtMultimedia.QSoundEffect()
self.alarm_sound.setSource(QtCore.QUrl.fromLocalFile(alarm_files[0]))
self.alarm_sound.setLoopCount(-1)  # infinite

Widget class namespaces — In PyQt6+pyqtgraph 0.13.7 QtGui no longer contains widget classes; all moved to QtWidgets: QMainWindow, QDialog, QApplication, QMessageBox, QFileDialog, QDialogButtonBox, QSplashScreen, QPushButton, QSpacerItem, QWidgetItem, QLayoutItem.

Fully-qualified enums — PyQt6 dropped unscoped enum access:

# Before
Qt.WindowModal / QMessageBox.Warning / QSizePolicy.Expanding
# After
Qt.WindowModality.WindowModal / QMessageBox.Icon.Warning / QSizePolicy.Policy.Expanding

Other API changes:

  • exec_()exec() throughout
  • setFilterRegExpsetFilterRegularExpression; QVariant() wrapping removed
  • QPalette.WindowQPalette.ColorRole.Window
  • QTextCursor.EndQTextCursor.MoveOperation.End
  • logging.getLogger('PyQt5')'PyQt6'

wakepy 1.0 API

Old functional API (set_keepawake/unset_keepawake) replaced with context manager:

self._wakepy_mode = wakepy.keep.running()
self._wakepy_mode.__enter__()   # on start
self._wakepy_mode.__exit__(None, None, None)  # on finish

PyInstaller

Hidden imports updated from *_pyqt5*_generic (pyqtgraph 0.13.7 ships backend-agnostic compiled templates).


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@doizuc doizuc changed the title [WIP] Update inline dependencies to PyQt v6 and NumPy v2 [WIP] Update Python to latest stable release and dependencies to PyQt v6 and NumPy v2 Mar 13, 2026
Copilot AI and others added 2 commits March 13, 2026 21:03
…endencies

Co-authored-by: doizuc <6456289+doizuc@users.noreply.github.com>
…r bound to python_requires

Co-authored-by: doizuc <6456289+doizuc@users.noreply.github.com>
Copilot AI changed the title [WIP] Update Python to latest stable release and dependencies to PyQt v6 and NumPy v2 Upgrade PyQt5→PyQt6, numpy v1→v2, Python 3.8→3.12, all dependencies Mar 13, 2026
Copilot AI requested a review from doizuc March 13, 2026 21:08
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