Added typing

Contributes to: CURA-8587
This commit is contained in:
Jelle Spijker 2021-12-05 15:18:51 +01:00
parent 09709ede8b
commit bd2f270803
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
3 changed files with 15 additions and 16 deletions

View file

@ -9,11 +9,10 @@ from typing import Dict, Optional, TYPE_CHECKING
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
from UM.TaskManagement.HttpRequestManager import HttpRequestData , HttpRequestManager from UM.TaskManagement.HttpRequestManager import HttpRequestData, HttpRequestManager
from UM.Logger import Logger from UM.Logger import Logger
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.API.Account import Account
from cura import CuraPackageManager from cura import CuraPackageManager
from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope # To make requests to the Ultimaker API with correct authorization. from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope # To make requests to the Ultimaker API with correct authorization.
@ -36,7 +35,7 @@ class PackageList(ListModel):
def __init__(self, parent: Optional["QObject"] = None) -> None: def __init__(self, parent: Optional["QObject"] = None) -> None:
super().__init__(parent) super().__init__(parent)
self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager() self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager()
self._account: Account = CuraApplication.getInstance().getCuraAPI().account self._account = CuraApplication.getInstance().getCuraAPI().account
self._error_message = "" self._error_message = ""
self.addRoleName(self.PackageRole, "package") self.addRoleName(self.PackageRole, "package")
self._is_loading = False self._is_loading = False
@ -113,7 +112,7 @@ class PackageList(ListModel):
:return: ``True`` if a Footer should be displayed in the ListView, e.q.: paginated lists, ``False`` Otherwise""" :return: ``True`` if a Footer should be displayed in the ListView, e.q.: paginated lists, ``False`` Otherwise"""
return self._has_footer return self._has_footer
def _connectManageButtonSignals(self, package): def _connectManageButtonSignals(self, package: PackageModel) -> None:
package.installPackageTriggered.connect(self.installPackage) package.installPackageTriggered.connect(self.installPackage)
package.uninstallPackageTriggered.connect(self.uninstallPackage) package.uninstallPackageTriggered.connect(self.uninstallPackage)
package.updatePackageTriggered.connect(self.installPackage) package.updatePackageTriggered.connect(self.installPackage)
@ -126,7 +125,7 @@ class PackageList(ListModel):
canInstallChanged = pyqtSignal(str, bool) canInstallChanged = pyqtSignal(str, bool)
def download(self, package_id, url, update: bool = False): def download(self, package_id: str, url: str, update: bool = False) -> None:
def downloadFinished(reply: "QNetworkReply") -> None: def downloadFinished(reply: "QNetworkReply") -> None:
self._downloadFinished(package_id, reply, update) self._downloadFinished(package_id, reply, update)
@ -176,7 +175,7 @@ class PackageList(ListModel):
def _install(self, package_id: str, update: bool = False) -> None: def _install(self, package_id: str, update: bool = False) -> None:
package_path = self._to_install.pop(package_id) package_path = self._to_install.pop(package_id)
Logger.debug(f"Installing {package_id}") Logger.debug(f"Installing {package_id}")
to_be_installed = self._manager.installPackage(package_path) != None to_be_installed = self._manager.installPackage(package_path) is not None
package = self._getPackageModel(package_id) package = self._getPackageModel(package_id)
if package.canUpdate and to_be_installed: if package.canUpdate and to_be_installed:
package.canUpdate = False package.canUpdate = False
@ -197,7 +196,7 @@ class PackageList(ListModel):
) )
@pyqtSlot(str) @pyqtSlot(str)
def uninstallPackage(self, package_id): def uninstallPackage(self, package_id: str) -> None:
Logger.debug(f"Uninstalling {package_id}") Logger.debug(f"Uninstalling {package_id}")
package = self._getPackageModel(package_id) package = self._getPackageModel(package_id)
self._manager.removePackage(package_id) self._manager.removePackage(package_id)
@ -211,7 +210,7 @@ class PackageList(ListModel):
HttpRequestManager.getInstance().delete(url = f"{USER_PACKAGES_URL}/{package_id}", scope = self._scope) HttpRequestManager.getInstance().delete(url = f"{USER_PACKAGES_URL}/{package_id}", scope = self._scope)
@pyqtSlot(str) @pyqtSlot(str)
def updatePackage(self, package_id): def updatePackage(self, package_id: str) -> None:
self._manager.removePackage(package_id, force_add = True) self._manager.removePackage(package_id, force_add = True)
package = self._getPackageModel(package_id) package = self._getPackageModel(package_id)
url = package.download_url url = package.download_url
@ -219,9 +218,9 @@ class PackageList(ListModel):
self.download(package_id, url, True) self.download(package_id, url, True)
@pyqtSlot(str) @pyqtSlot(str)
def enablePackage(self, package_id): def enablePackage(self, package_id: str) -> None:
Logger.debug(f"Enabling {package_id}") Logger.debug(f"Enabling {package_id}")
@pyqtSlot(str) @pyqtSlot(str)
def disablePackage(self, package_id): def disablePackage(self, package_id: str) -> None:
Logger.debug(f"Disabling {package_id}") Logger.debug(f"Disabling {package_id}")

View file

@ -293,13 +293,13 @@ class PackageModel(QObject):
isEnabledChanged = pyqtSignal() isEnabledChanged = pyqtSignal()
@pyqtProperty(bool, notify = isEnabledChanged) @pyqtProperty(bool, notify = isEnabledChanged)
def isEnabled(self): def isEnabled(self) -> bool:
return self._is_active return self._is_active
manageEnableStateChanged = pyqtSignal() manageEnableStateChanged = pyqtSignal()
@pyqtProperty(str, notify = manageEnableStateChanged) @pyqtProperty(str, notify = manageEnableStateChanged)
def manageEnableState(self): def manageEnableState(self) -> str:
# TODO: Handle manual installed packages # TODO: Handle manual installed packages
if self._is_installed: if self._is_installed:
if self._is_active: if self._is_active:
@ -330,13 +330,13 @@ class PackageModel(QObject):
manageUpdateStateChanged = pyqtSignal() manageUpdateStateChanged = pyqtSignal()
@pyqtProperty(str, notify = manageUpdateStateChanged) @pyqtProperty(str, notify = manageUpdateStateChanged)
def manageUpdateState(self): def manageUpdateState(self) -> str:
if self._can_update: if self._can_update:
return "primary" return "primary"
return "hidden" return "hidden"
@property @property
def canUpdate(self): def canUpdate(self) -> bool:
return self._can_update return self._can_update
@canUpdate.setter @canUpdate.setter

View file

@ -3,7 +3,7 @@
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot
from PyQt5.QtNetwork import QNetworkReply from PyQt5.QtNetwork import QNetworkReply
from typing import Optional, TYPE_CHECKING from typing import Optional, Set, TYPE_CHECKING
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Logger import Logger from UM.Logger import Logger
@ -31,7 +31,7 @@ class RemotePackageList(PackageList):
self._request_url = self._initialRequestUrl() self._request_url = self._initialRequestUrl()
self.isLoadingChanged.connect(self._onLoadingChanged) self.isLoadingChanged.connect(self._onLoadingChanged)
self.isLoadingChanged.emit() self.isLoadingChanged.emit()
self._locally_installed = { p["package_id"] for p in self._manager.locally_installed_packages } self._locally_installed: Set[str] = { p["package_id"] for p in self._manager.locally_installed_packages }
def __del__(self) -> None: def __del__(self) -> None:
""" """