Add typing and appease MYPY

This commit is contained in:
fieldOfView 2018-09-28 12:40:44 +02:00
parent a12c0e8d9e
commit a573a598b0
6 changed files with 83 additions and 76 deletions

View file

@ -5,9 +5,11 @@ from PyQt5.QtCore import QObject, QUrl, pyqtSignal, pyqtProperty
from UM.Resources import Resources
from cura.PrinterOutputDevice import PrinterOutputDevice
from cura.CuraApplication import CuraApplication
from enum import IntEnum
from threading import Thread
from typing import Any
class FirmwareUpdater(QObject):
firmwareProgressChanged = pyqtSignal()
@ -19,11 +21,11 @@ class FirmwareUpdater(QObject):
self._update_firmware_thread = Thread(target=self._updateFirmware, daemon=True)
self._firmware_view = None
self._firmware_location = None
self._firmware_location = ""
self._firmware_progress = 0
self._firmware_update_state = FirmwareUpdateState.idle
def updateFirmware(self, file):
def updateFirmware(self, file: Any[str, QUrl]) -> None:
# the file path could be url-encoded.
if file.startswith("file://"):
self._firmware_location = QUrl(file).toLocalFile()
@ -33,10 +35,10 @@ class FirmwareUpdater(QObject):
self.setFirmwareUpdateState(FirmwareUpdateState.updating)
self._update_firmware_thread.start()
def _updateFirmware(self):
def _updateFirmware(self) -> None:
raise NotImplementedError("_updateFirmware needs to be implemented")
def cleanupAfterUpdate(self):
def cleanupAfterUpdate(self) -> None:
# Clean up for next attempt.
self._update_firmware_thread = Thread(target=self._updateFirmware, daemon=True)
self._firmware_location = ""
@ -45,28 +47,29 @@ class FirmwareUpdater(QObject):
## Show firmware interface.
# This will create the view if its not already created.
def showFirmwareInterface(self):
def showFirmwareInterface(self) -> None:
if self._firmware_view is None:
path = Resources.getPath(self.ResourceTypes.QmlFiles, "FirmwareUpdateWindow.qml")
self._firmware_view = CuraApplication.getInstance().createQmlComponent(path, {"manager": self})
self._firmware_view.show()
if self._firmware_view:
self._firmware_view.show()
@pyqtProperty(float, notify = firmwareProgressChanged)
def firmwareProgress(self):
def firmwareProgress(self) -> float:
return self._firmware_progress
@pyqtProperty(int, notify=firmwareUpdateStateChanged)
def firmwareUpdateState(self):
def firmwareUpdateState(self) -> FirmwareUpdateState:
return self._firmware_update_state
def setFirmwareUpdateState(self, state):
def setFirmwareUpdateState(self, state) -> None:
if self._firmware_update_state != state:
self._firmware_update_state = state
self.firmwareUpdateStateChanged.emit()
# Callback function for firmware update progress.
def _onFirmwareProgress(self, progress, max_progress = 100):
def _onFirmwareProgress(self, progress, max_progress = 100) -> None:
self._firmware_progress = (progress / max_progress) * 100 # Convert to scale of 0-100
self.firmwareProgressChanged.emit()