def __init__(self, mainwindow, result_manager): QWidget.__init__(self, mainwindow) #mainwindow is an OpusGui self.mainwindow = mainwindow self.result_manager = result_manager self.toolboxBase = self.result_manager.mainwindow.toolboxBase self.inGui = False self.logFileKey = 0 self.xml_helper = ResultsManagerXMLHelper(toolboxBase=self.toolboxBase) self.result_generator = OpusResultGenerator( toolboxBase=self.toolboxBase) self.result_generator.guiElement = self self.tabIcon = QIcon(':/Images/Images/cog.png') self.tabLabel = 'Advanced Visualization' self.widgetLayout = QVBoxLayout(self) self.widgetLayout.setAlignment(Qt.AlignTop) self.resultsGroupBox = QGroupBox(self) self.widgetLayout.addWidget(self.resultsGroupBox) self.dataGroupBox = QGroupBox(self) self.widgetLayout.addWidget(self.dataGroupBox) self.optionsGroupBox = QGroupBox(self) self.widgetLayout.addWidget(self.optionsGroupBox) self._setup_definition_widget() self._setup_buttons() self._setup_tabs()
def _test_generate_results(self, indicator_name, dataset_name, expression, source): # grab the first base_year_data in results_manager/simulation_runs and # fetch the year for it base_year = self.project.find( "results_manager/simulation_runs/run[@name='base_year_data']/end_year" ) if base_year is None: return False, "Project doesn't have any base year data to check against" start_year = int(base_year.text) result_generator = OpusResultGenerator(self.project) result_generator.set_data(source_data_name='base_year_data', indicator_name=indicator_name, dataset_name=dataset_name, years=[ start_year, ], indicator_definition=(expression, source)) interface = IndicatorFrameworkInterface(self.project) src_data = interface.get_source_data(source_data_name='base_year_data', years=[ start_year, ]) SimulationState().set_current_time(start_year) SimulationState().set_cache_directory(src_data.cache_directory) SessionConfiguration( new_instance=True, package_order=src_data.dataset_pool_configuration.package_order, in_storage=AttributeCache()) dataset = SessionConfiguration().get_dataset_from_pool(dataset_name) if isinstance(dataset, InteractionDataset): #create a subset if its an interaction dataset... dataset_arguments = { 'index1': numpy.random.randint(0, dataset.dataset1.size(), size=100), 'index2': numpy.random.randint(0, dataset.dataset2.size(), size=100) } SessionConfiguration().delete_datasets() dataset = SessionConfiguration().get_dataset_from_pool( dataset_name, dataset_arguments=dataset_arguments) try: dataset.compute_variables(names=[expression]) return True, None except Exception, e: type, value, tb = sys.exc_info() stack_dump = ''.join(traceback.format_exception(type, value, tb)) errors = "{}\n\n{}".format(e, stack_dump) return False, errors
def __init__(self, project, kwargs = None): self.generator = OpusResultGenerator(project) self.visualizer = OpusResultVisualizer( project = project, indicator_type = None, indicators = None, kwargs = kwargs ) self.finishedCallback = None self.errorCallback = None