def __init__(self, run_node, parent_widget=None): QDialog.__init__(self, parent_widget) self.setupUi(self) self.run_node = run_node self.changed_cache_dir = None run_name = run_node.get('name') # We don't have a results manager in the unit tests results_manager = get_manager_instance('results_manager') if results_manager is not None: #this is to work around that results_manager_functions.add_simulation_run function #isn't able to update existing runs, for example, in case a run being restarted project = results_manager.project start_year, end_year = get_years_range_for_simulation_run( project, run_node=self.run_node) else: # fallback, fill in existing values... start_year = run_node.find('start_year').text end_year = run_node.find('end_year').text scenario_name = run_node.find('scenario_name').text cache_directory = run_node.find('cache_directory').text self.original_cache_dir = cache_directory.strip() run_id = run_node.get('run_id', 'not available') self.lblRun_name.setText(run_name) self.lblYears_run.setText('%s - %s' % (start_year, end_year)) if scenario_name is None: scenario_name = '' self.lblScenario_name.setText(scenario_name) self.lblCache_directory.setText(cache_directory) self.lblRunId.setText(run_id)
def __init__(self, run_node, parent_widget=None): QDialog.__init__(self, parent_widget) self.setupUi(self) self.run_node = run_node self.changed_cache_dir = None run_name = run_node.get("name") # We don't have a results manager in the unit tests results_manager = get_manager_instance("results_manager") if results_manager is not None: # this is to work around that results_manager_functions.add_simulation_run function # isn't able to update existing runs, for example, in case a run being restarted project = results_manager.project start_year, end_year = get_years_range_for_simulation_run(project, run_node=self.run_node) else: # fallback, fill in existing values... start_year = run_node.find("start_year").text end_year = run_node.find("end_year").text scenario_name = run_node.find("scenario_name").text cache_directory = run_node.find("cache_directory").text self.original_cache_dir = cache_directory.strip() run_id = run_node.get("run_id", "not available") self.lblRun_name.setText(run_name) self.lblYears_run.setText("%s - %s" % (start_year, end_year)) if scenario_name is None: scenario_name = "" self.lblScenario_name.setText(scenario_name) self.lblCache_directory.setText(cache_directory) self.lblRunId.setText(run_id)
def on_pbnStartModel_clicked(self): self.diagnostic_go_button.setEnabled(True) if self.running and not self.paused: # Take care of pausing a run success = self.runThread.pause() if success: self.paused = True self.timer.stop() self.pbnStartModel.setText(QString("Resume simulation run")) elif self.running and self.paused: # Need to resume a paused run success = self.runThread.resume() if success: self.paused = False self.timer.start(1000) self.pbnStartModel.setText(QString("Pause simulation run")) elif not self.running: # this is to work around that results_manager_functions.add_simulation_run function # isn't able to update existing runs and years information in simulation_runs/run # node may not be correct original_start_year, original_end_year = get_years_range_for_simulation_run(self.project, self.run_name) # #ask for first and last year of the run to be restarted run_manager = get_run_manager() years_config = self.config["years"] # = (original_start_year, end_year) base_year = self.config["base_year"] dlg_years = InputRestartYearsDialog(self.mainwindow) dlg_years.lblBaseYear.setText(str(base_year)) if original_end_year is not None: dlg_years.lblEndYear.setText(str(original_end_year)) proposed_start_year = original_end_year + 1 else: proposed_start_year = base_year + 1 proposed_end_year = years_config[1] if years_config[1] > proposed_start_year else proposed_start_year + 1 dlg_years.leFirstYear.setText(str(proposed_start_year)) dlg_years.leLastYear.setText(str(proposed_end_year)) if dlg_years.exec_() == QDialog.Rejected: return self.start_year = int(dlg_years.leFirstYear.text()) self.end_year = int(dlg_years.leLastYear.text()) assert self.end_year >= self.start_year self.config["years"] = (self.start_year, self.end_year) # run_manager._create_seed_dictionary(self.config) # run_manager.add_row_to_history(self.run_id, # self.config, # status='restarted', # run_name=self.run_name, # scenario_name=self.scenario_name) # Update the XML self.project.update_xml_config() # self.updateConfigAndGuiForRun() # # Fire up a new thread and run the model self._init_run(self.run_name) self.runThread.setup_restart_run(self.run_id, self.config, self.start_year, self.end_year) self.runThread.start() else: print "Unexpected state in the model run..."
def on_pbnStartModel_clicked(self): self.diagnostic_go_button.setEnabled(True) if self.running and not self.paused: # Take care of pausing a run success = self.runThread.pause() if success: self.paused = True self.timer.stop() self.pbnStartModel.setText(QString("Resume simulation run")) elif self.running and self.paused: # Need to resume a paused run success = self.runThread.resume() if success: self.paused = False self.timer.start(1000) self.pbnStartModel.setText(QString("Pause simulation run")) elif not self.running: #this is to work around that results_manager_functions.add_simulation_run function #isn't able to update existing runs and years information in simulation_runs/run #node may not be correct original_start_year, original_end_year = get_years_range_for_simulation_run(self.project, self.run_name) # #ask for first and last year of the run to be restarted run_manager = get_run_manager() years_config = self.config['years'] # = (original_start_year, end_year) base_year = self.config['base_year'] dlg_years = InputRestartYearsDialog(self.mainwindow) dlg_years.lblBaseYear.setText(str(base_year)) if original_end_year is not None: dlg_years.lblEndYear.setText(str(original_end_year)) proposed_start_year = original_end_year + 1 else: proposed_start_year = base_year + 1 proposed_end_year = years_config[1] if years_config[1] > proposed_start_year \ else proposed_start_year + 1 dlg_years.leFirstYear.setText(str(proposed_start_year)) dlg_years.leLastYear.setText(str(proposed_end_year)) if dlg_years.exec_() == QDialog.Rejected: return self.start_year = int(dlg_years.leFirstYear.text()) self.end_year = int(dlg_years.leLastYear.text()) assert self.end_year >= self.start_year self.config['years'] = (self.start_year, self.end_year) # run_manager._create_seed_dictionary(self.config) # run_manager.add_row_to_history(self.run_id, # self.config, # status='restarted', # run_name=self.run_name, # scenario_name=self.scenario_name) # Update the XML self.project.update_xml_config() #self.updateConfigAndGuiForRun() # # Fire up a new thread and run the model self._init_run(self.run_name) self.runThread.setup_restart_run(self.run_id, self.config, self.start_year, self.end_year ) self.runThread.start() else: print "Unexpected state in the model run..."