From eeb481207f797d0cc2063826cbc69fcc2314e9a3 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Tue, 21 Feb 2023 12:48:45 -0600 Subject: [PATCH] Addon Manager: Fix bug in dependency installer --- src/Mod/AddonManager/addonmanager_installer.py | 2 +- src/Mod/AddonManager/addonmanager_installer_gui.py | 6 +++--- src/Mod/AddonManager/addonmanager_utilities.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Mod/AddonManager/addonmanager_installer.py b/src/Mod/AddonManager/addonmanager_installer.py index e617201fc2..9b98f4eda1 100644 --- a/src/Mod/AddonManager/addonmanager_installer.py +++ b/src/Mod/AddonManager/addonmanager_installer.py @@ -116,7 +116,7 @@ class AddonInstaller(QtCore.QObject): allowed_packages = set() - def __init__(self, addon: object, allow_list: List[str] = None): + def __init__(self, addon: Addon, allow_list: List[str] = None): """Initialize the installer with an optional list of addons. If provided, then installation by name is supported, as long as the objects in the list contain a "name" and "url" property. In most use cases it is expected that addons is a List of Addon objects, but that diff --git a/src/Mod/AddonManager/addonmanager_installer_gui.py b/src/Mod/AddonManager/addonmanager_installer_gui.py index 7f405e017d..56b203df38 100644 --- a/src/Mod/AddonManager/addonmanager_installer_gui.py +++ b/src/Mod/AddonManager/addonmanager_installer_gui.py @@ -36,7 +36,7 @@ from PySide import QtCore, QtWidgets from addonmanager_installer import AddonInstaller, MacroInstaller from addonmanager_dependency_installer import DependencyInstaller import addonmanager_utilities as utils -from Addon import MissingDependencies +from Addon import Addon, MissingDependencies translate = FreeCAD.Qt.translate @@ -58,11 +58,11 @@ class AddonInstallerGUI(QtCore.QObject): # Emitted once all work has been completed, regardless of success or failure finished = QtCore.Signal() - def __init__(self, addon: object, addons: List[object] = None): + def __init__(self, addon: Addon, addons: List[Addon] = None): super().__init__() self.addon_to_install = addon self.addons = [] if addons is None else addons - self.installer = AddonInstaller(addon, addons) + self.installer = AddonInstaller(addon) self.dependency_installer = None self.install_worker = None self.dependency_dialog = None diff --git a/src/Mod/AddonManager/addonmanager_utilities.py b/src/Mod/AddonManager/addonmanager_utilities.py index bffb9bf755..d165192829 100644 --- a/src/Mod/AddonManager/addonmanager_utilities.py +++ b/src/Mod/AddonManager/addonmanager_utilities.py @@ -439,7 +439,7 @@ def run_interruptable_subprocess(args) -> subprocess.CompletedProcess: while return_code is None: try: stdout, stderr = p.communicate(timeout=0.1) - return_code = p.returncode if p.returncode is not None else -1 + return_code = p.returncode except subprocess.TimeoutExpired: if QtCore.QThread.currentThread().isInterruptionRequested(): p.kill()