mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-13 01:37:51 -06:00
Better type checking and handling of optionals
Adds type checking here and there to catch such errors in the future. This makes it handle the optional fields of this model better. Contributes to issue CURA-8730.
This commit is contained in:
parent
9d4599df39
commit
9674c54efb
2 changed files with 13 additions and 11 deletions
|
@ -42,7 +42,7 @@ class PrintJobOutputModel(QObject):
|
||||||
self._preview_image = None # type: Optional[QImage]
|
self._preview_image = None # type: Optional[QImage]
|
||||||
|
|
||||||
@pyqtProperty("QStringList", notify=compatibleMachineFamiliesChanged)
|
@pyqtProperty("QStringList", notify=compatibleMachineFamiliesChanged)
|
||||||
def compatibleMachineFamilies(self):
|
def compatibleMachineFamilies(self) -> List[str]:
|
||||||
# Hack; Some versions of cluster will return a family more than once...
|
# Hack; Some versions of cluster will return a family more than once...
|
||||||
return list(set(self._compatible_machine_families))
|
return list(set(self._compatible_machine_families))
|
||||||
|
|
||||||
|
@ -77,11 +77,11 @@ class PrintJobOutputModel(QObject):
|
||||||
self._configuration = configuration
|
self._configuration = configuration
|
||||||
self.configurationChanged.emit()
|
self.configurationChanged.emit()
|
||||||
|
|
||||||
@pyqtProperty(str, notify=ownerChanged)
|
@pyqtProperty(str, notify = ownerChanged)
|
||||||
def owner(self):
|
def owner(self) -> str:
|
||||||
return self._owner
|
return self._owner
|
||||||
|
|
||||||
def updateOwner(self, owner):
|
def updateOwner(self, owner: str) -> None:
|
||||||
if self._owner != owner:
|
if self._owner != owner:
|
||||||
self._owner = owner
|
self._owner = owner
|
||||||
self.ownerChanged.emit()
|
self.ownerChanged.emit()
|
||||||
|
@ -132,7 +132,7 @@ class PrintJobOutputModel(QObject):
|
||||||
|
|
||||||
@pyqtProperty(float, notify = timeElapsedChanged)
|
@pyqtProperty(float, notify = timeElapsedChanged)
|
||||||
def progress(self) -> float:
|
def progress(self) -> float:
|
||||||
result = float(self.timeElapsed) / max(self.timeTotal, 1.0) # Prevent a division by zero exception.
|
result = float(self.timeElapsed) / max(self.timeTotal, 1.0) # Prevent a division by zero exception.
|
||||||
return min(result, 1.0) # Never get a progress past 1.0
|
return min(result, 1.0) # Never get a progress past 1.0
|
||||||
|
|
||||||
@pyqtProperty(str, notify=stateChanged)
|
@pyqtProperty(str, notify=stateChanged)
|
||||||
|
@ -151,12 +151,12 @@ class PrintJobOutputModel(QObject):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def updateTimeTotal(self, new_time_total):
|
def updateTimeTotal(self, new_time_total: int) -> None:
|
||||||
if self._time_total != new_time_total:
|
if self._time_total != new_time_total:
|
||||||
self._time_total = new_time_total
|
self._time_total = new_time_total
|
||||||
self.timeTotalChanged.emit()
|
self.timeTotalChanged.emit()
|
||||||
|
|
||||||
def updateTimeElapsed(self, new_time_elapsed):
|
def updateTimeElapsed(self, new_time_elapsed: int) -> None:
|
||||||
if self._time_elapsed != new_time_elapsed:
|
if self._time_elapsed != new_time_elapsed:
|
||||||
self._time_elapsed = new_time_elapsed
|
self._time_elapsed = new_time_elapsed
|
||||||
self.timeElapsedChanged.emit()
|
self.timeElapsedChanged.emit()
|
||||||
|
|
|
@ -40,7 +40,7 @@ class ClusterPrintJobStatus(BaseModel):
|
||||||
configuration_changes_required: List[
|
configuration_changes_required: List[
|
||||||
Union[Dict[str, Any], ClusterPrintJobConfigurationChange]] = None,
|
Union[Dict[str, Any], ClusterPrintJobConfigurationChange]] = None,
|
||||||
build_plate: Union[Dict[str, Any], ClusterBuildPlate] = None,
|
build_plate: Union[Dict[str, Any], ClusterBuildPlate] = None,
|
||||||
compatible_machine_families: List[str] = None,
|
compatible_machine_families: Optional[List[str]] = None,
|
||||||
impediments_to_printing: List[Union[Dict[str, Any], ClusterPrintJobImpediment]] = None,
|
impediments_to_printing: List[Union[Dict[str, Any], ClusterPrintJobImpediment]] = None,
|
||||||
preview_url: Optional[str] = None,
|
preview_url: Optional[str] = None,
|
||||||
**kwargs) -> None:
|
**kwargs) -> None:
|
||||||
|
@ -97,7 +97,7 @@ class ClusterPrintJobStatus(BaseModel):
|
||||||
configuration_changes_required) \
|
configuration_changes_required) \
|
||||||
if configuration_changes_required else []
|
if configuration_changes_required else []
|
||||||
self.build_plate = self.parseModel(ClusterBuildPlate, build_plate) if build_plate else None
|
self.build_plate = self.parseModel(ClusterBuildPlate, build_plate) if build_plate else None
|
||||||
self.compatible_machine_families = compatible_machine_families if compatible_machine_families else []
|
self.compatible_machine_families = compatible_machine_families if compatible_machine_families is not None else []
|
||||||
self.impediments_to_printing = self.parseModels(ClusterPrintJobImpediment, impediments_to_printing) \
|
self.impediments_to_printing = self.parseModels(ClusterPrintJobImpediment, impediments_to_printing) \
|
||||||
if impediments_to_printing else []
|
if impediments_to_printing else []
|
||||||
|
|
||||||
|
@ -130,8 +130,10 @@ class ClusterPrintJobStatus(BaseModel):
|
||||||
|
|
||||||
model.updateConfiguration(self._createConfigurationModel())
|
model.updateConfiguration(self._createConfigurationModel())
|
||||||
model.updateTimeTotal(self.time_total)
|
model.updateTimeTotal(self.time_total)
|
||||||
model.updateTimeElapsed(self.time_elapsed)
|
if self.time_elapsed is not None:
|
||||||
model.updateOwner(self.owner)
|
model.updateTimeElapsed(self.time_elapsed)
|
||||||
|
if self.owner is not None:
|
||||||
|
model.updateOwner(self.owner)
|
||||||
model.updateState(self.status)
|
model.updateState(self.status)
|
||||||
model.setCompatibleMachineFamilies(self.compatible_machine_families)
|
model.setCompatibleMachineFamilies(self.compatible_machine_families)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue