def _updateAvailableConfigurations(self, model: PrinterOutputModel) -> None: available_configurations = [ self._createAvailableConfigurationFromPrinterConfiguration( left_slot=left_slot, right_slot=right_slot, printer_configuration=model.printerConfiguration) for left_slot, right_slot in product(self._getSlotsForExtruder(0), self._getSlotsForExtruder(1)) ] model.setAvailableConfigurations(available_configurations)
def test_availableConfigurations_addConfigTwice(): model = PrinterOutputModel(MagicMock()) configuration = MagicMock(spec=PrinterConfigurationModel) model.setAvailableConfigurations([configuration]) assert model.availableConfigurations == [configuration] # Adding it again should not have any effect model.addAvailableConfiguration(configuration) assert model.availableConfigurations == [configuration]
def _build_printer_output_model(self) -> PrinterOutputModel: """Returns printer Output Model for this device.""" printer_output_model = PrinterOutputModel( output_controller=self._printer_output_controller, number_of_extruders=_NUM_EXTRUDERS) printer_output_model.updateKey(self._address) printer_output_model.updateName(self.address) printer_output_model.updateState('idle') printer_output_model.setAvailableConfigurations( [_build_printer_conf_model()]) printer_output_model.updateType('Monoprice Select Mini') printer_output_model.updateActivePrintJob(self._print_job_model) return printer_output_model
def _updateAvailableConfigurations(self, model: PrinterOutputModel) -> None: # Generate a list of configurations for the left extruder. left_configurations = [ slot for slot in self.material_station.material_slots if self._isSupportedConfiguration(slot=slot, extruder_index=0) ] # Generate a list of configurations for the right extruder. right_configurations = [ slot for slot in self.material_station.material_slots if self._isSupportedConfiguration(slot=slot, extruder_index=1) ] # Create a list of all available combinations between both print cores. available_configurations = [ self._createAvailableConfigurationFromPrinterConfiguration( left_slot=left_slot, right_slot=right_slot, printer_configuration=model.printerConfiguration) for left_slot, right_slot in product(left_configurations, right_configurations) ] # Let Cura know which available configurations there are. model.setAvailableConfigurations(available_configurations)