Skip to content

Port the GUI to PyQt5 - #51

Closed
spraharsh wants to merge 23 commits into
masterfrom
gui-pyqt5
Closed

spraharsh wants to merge 23 commits into
masterfrom
gui-pyqt5

Conversation

@spraharsh

Copy link
Copy Markdown
Collaborator

Brings pele.gui back to a working state on PyQt5 and current Python.

  • Port from PyQt4 (QtGui → QtWidgets, drop toPyObject/iteritems), merge this fork's changes into the files ported upstream, and have meson generate the forms and resources (-Dgui=enabled).
  • Background jobs (basin-hopping, connect, thermodynamics): drain all returned results, report worker errors, cancel/terminate cleanly on stop, database switch and window close.
  • Main window: correct database switching and signal wiring, working minimum/TS removal and merging, selection-dependent actions disabled until valid, graph picks outside the list limit.
  • Analysis dialogs: input validation for heat capacity and rates, committor/MFPT colouring over the whole connected component, NEB save/load, normal-mode and viewer animation fixes, NetworkX 2+ API.
  • Core fixes found along the way: RatesLinalg keeps its solver state, ConnectManagerRandom exhausts untried pairs, GetThermodynamicInfoParallel honours only_minima, and a leftover frequency debug print is removed.
  • Regression tests under pele/gui/tests/; audit checklist in doc/gui_audit.rst.

🤖 Generated with Claude Code

spraharsh and others added 23 commits September 27, 2026 21:45
…ream content

Temporary step so that farrelljd's commits from pele-python/pele#178 can be cherry-picked verbatim (identical diffs) in the following commits. The files are set to their content at c3cfa05c, the commit his port starts from. This fork's own changes to these files are merged back in after his commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 146edfd5df44908c8e416917930ac2e5bf4a1136)
QtGui -> QtWidgets

(cherry picked from commit 416be20aeb82325c0eabdf0dcf02f245d6ab86ba)
QtGui -> QtWidgets

(cherry picked from commit 36b1ad23ea4c28bf76ac3a2478bbb2e7c8f9aa16)
(cherry picked from commit bce40fc37482a1ddd22e40901df6dd3a6f669917)
QtGui -> QtWidgets

(cherry picked from commit 298fd17bae16fd0abd9e565b5742e41c7a0002cf)
(cherry picked from commit bc56dd8f9b2a2b733e20cb87329ca8e2f1402c69)
(cherry picked from commit f11db51df64d29ef9ed2c64c27e8656d31cd2400)
(cherry picked from commit 0e7d921bdd5d3def924a8d5a72b455b797cb19ca)
(cherry picked from commit 383754e07b323952809e577976085bb96b2141d6)
(cherry picked from commit 4d9ab81e0d3743db5d3614937bb5b49999793cac)
(cherry picked from commit a2f064866f5aa05a223503a7015f939ff86ade56)
(cherry picked from commit 1018c9ba555dad53280bb337a9aa8df79b0bd6a7)
Three-way merge (base: upstream c3cfa05c; ours: this fork; theirs: farrelljd's PyQt5 port, previous 12 commits) of the files set to upstream content two steps before. Before merging, the base and his versions were normalized with the tools this fork applied to these files (pyupgrade --py3-plus, black 22.10 -l 80), so formatting-only differences do not conflict.

Conflicts, resolved:
- connect_all.py: time.process_time() (this fork; time.clock was removed in Python 3.8)
- dlg_params.py: QtWidgets.QMenu and hasattr(..., "items") (his; "iteritems" is Python 2)
- graph_viewer.py: iterate graph.degree() directly (his; networkx >= 2 DegreeView has no .items())
- normalmode_browser.py: formatting only (this fork)
- pymolwidget/pymolwidget.py: this fork's explicit imports, from PyQt5 instead of PyQt4

pele/gui/nebdlg.py stays deleted, as in this fork (unused).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
farrelljd's port removed the generated pele/gui *_ui.py and resources_rc.py files. Generate them at build time with pyuic5/pyrcc5 (from PyQt5) and install them into the package, behind a new 'gui' feature option (auto: built when the tools are found).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 5f42838)
@codecov

codecov Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.00000% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
pele/storage/savenlowest.py 0.00% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@spraharsh

Copy link
Copy Markdown
Collaborator Author

Superseded by #52, which merges pele-python's history (with farrelljd's original commits) and includes these changes.

@spraharsh spraharsh closed this Sep 28, 2026
@spraharsh
spraharsh deleted the gui-pyqt5 branch September 28, 2026 04:17
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