Skip to content

Commit 7944c95

Browse files
authored
Fix plugin manager handling of editable packages (#1802)
1 parent d142f51 commit 7944c95

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

news.d/bugfix/1802.ui.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Make the plugin manager handle some exceptional cases.

plover/gui_qt/plugins_manager.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
QInputDialog,
1313
)
1414

15+
from plover import log
1516
from plover.gui_qt.tool import Tool
1617
from plover.gui_qt.info_browser import InfoBrowser
1718
from plover.gui_qt.plugins_manager_ui import Ui_PluginsManager
@@ -109,7 +110,7 @@ def handle_selection_change(self):
109110
if current_item is None:
110111
return
111112
metadata = self._get_state(current_item.row()).metadata
112-
if metadata is None:
113+
if metadata is None or metadata.name is None:
113114
return
114115
prologue = "<h1>%s (%s)</h1>" % (
115116
html.escape(metadata.name),
@@ -145,8 +146,13 @@ def restart(self):
145146
os.execv(args[0], args)
146147

147148
def _update_packages(self):
148-
self._packages.update()
149-
self._packages_updated.emit()
149+
try:
150+
self._packages.update()
151+
self._packages_updated.emit()
152+
except BaseException:
153+
# gui_qt/main.py sets sys.excepthook, but this function is run in a thread
154+
# so it doesn't apply. We catch exceptions manually.
155+
log.error("Error in updating packages", exc_info=sys.exc_info())
150156

151157
def _clear_info(self):
152158
self.info.setHtml("")

plover/plugins_manager/registry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ def update(self):
143143
pkg.available = metadata
144144
if (
145145
pkg.current
146+
and pkg.current.version is not None
146147
and pkg.current.parsed_version < pkg.latest.parsed_version
147148
):
148149
pkg.status = "outdated"

0 commit comments

Comments
 (0)