def _populate_algorithms(self, algo_category_class, algo_category_id): for adapter_class in self.introspection_registry.ADAPTERS[algo_category_class]: try: if not adapter_class.can_be_active(): self.logger.warning("Skipped Adapter(probably because MATLAB not found):" + str(adapter_class)) stored_adapter = Algorithm(adapter_class.__module__, adapter_class.__name__, algo_category_id, adapter_class.get_group_name(), adapter_class.get_group_description(), adapter_class.get_ui_name(), adapter_class.get_ui_description(), adapter_class.get_ui_subsection(), datetime.datetime.now()) adapter_inst = adapter_class() adapter_form = adapter_inst.get_form() required_datatype = adapter_form.get_required_datatype() if required_datatype is not None: required_datatype = required_datatype.__name__ filters = adapter_form.get_filters() if filters is not None: filters = filters.to_json() stored_adapter.required_datatype = required_datatype stored_adapter.datatype_filter = filters stored_adapter.parameter_name = adapter_form.get_input_name() stored_adapter.outputlist = str(adapter_inst.get_output()) inst_from_db = dao.get_algorithm_by_module(adapter_class.__module__, adapter_class.__name__) if inst_from_db is not None: stored_adapter.id = inst_from_db.id stored_adapter = dao.store_entity(stored_adapter, inst_from_db is not None) adapter_class.stored_adapter = stored_adapter except Exception: self.logger.exception("Could not introspect Adapters file:" + adapter_class.__module__)
def build(adapter_class=DummyAdapter1): all_categories = dao.get_algorithm_categories() algo_category_id = all_categories[0].id stored_adapter = Algorithm(adapter_class.__module__, adapter_class.__name__, algo_category_id, adapter_class.get_group_name(), adapter_class.get_group_description(), adapter_class.get_ui_name(), adapter_class.get_ui_description(), adapter_class.get_ui_subsection(), datetime.now()) adapter_inst = adapter_class() adapter_form = adapter_inst.get_form() required_datatype = adapter_form.get_required_datatype() if required_datatype is not None: required_datatype = required_datatype.__name__ filters = adapter_form.get_filters() if filters is not None: filters = filters.to_json() stored_adapter.required_datatype = required_datatype stored_adapter.datatype_filter_filter = filters stored_adapter.parameter_name = adapter_form.get_input_name() stored_adapter.outputlist = str(adapter_inst.get_output()) inst_from_db = dao.get_algorithm_by_module(adapter_class.__module__, adapter_class.__name__) if inst_from_db is not None: stored_adapter.id = inst_from_db.id return dao.store_entity(stored_adapter, inst_from_db is not None)