def add_tsn(self, index): try: indexes = self.ui.table_results.selectionModel().selectedRows() selected_indices = [int(index.row()) for index in list(indexes)] df = self.ui.table_results.model().dataframe() indexes = df.index[selected_indices] if df.shape[0] == 1: index = 0 elif selected_indices: index = selected_indices[0] else: return if 'combinedName' in df.columns: item_name = df.iloc[index]['combinedName'] else: item_name = str(df.iloc[index]['commonName']) tsn = df.iloc[index]['tsn'] i = self.selected_items_df.index.max() + 1 if pd.isnull(i): i = 0 self.selected_items_df.loc[i] = [str(item_name), tsn] self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model) except AttributeError: pass
def __init__(self, xml=None, fgdc_function=None, parent=None): QWidget.__init__(self, parent=parent) self.build_ui() self.connect_events() self.selected_items_df = pd.DataFrame(columns=['item', 'tsn']) self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model) self._from_xml(xml) self.fgdc_function = fgdc_function
def search_itis(self): if str(self.ui.combo_search_type.currentText()) == 'Scientific name': results = taxonomy.search_by_scientific_name( str(self.ui.search_term.text())) else: results = taxonomy.search_by_common_name( str(self.ui.search_term.text())) model = utils.PandasModel(results) self.ui.table_results.setModel(model)
def search_itis(self): QApplication.setOverrideCursor(Qt.WaitCursor) if str(self.ui.combo_search_type.currentText()) == 'Scientific name': results = taxonomy.search_by_scientific_name( str(self.ui.search_term.text())) else: results = taxonomy.search_by_common_name( str(self.ui.search_term.text())) model = utils.PandasModel(results) self.ui.table_results.setModel(model) QApplication.restoreOverrideCursor()
def __init__(self, parent=None): WizardWidget.__init__(self, parent=parent) self.selected_items_df = pd.DataFrame(columns=['item', 'tsn']) self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model) self.ui.frame_included_species.hide() # This dictionary contains copies of each unique taxonomy xml created # so that we need not generate them more than once self.xml_lookup = {}
def _from_xml(self, taxonomy_element): if taxonomy_element is not None: i = 0 for common_node in taxonomy_element.findall('.//common'): if common_node.text.startswith('TSN: '): tsn = common_node.text[5:] scientific_name = taxonomy.get_full_record_from_tsn( tsn)['scientificName']['combinedName'] self.selected_items_df.loc[i] = [scientific_name, tsn] i += 1 self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model)
def _from_xml(self, taxonomy_element): self.ui.rbtn_yes.setChecked(True) self.selected_items_df = pd.DataFrame(columns=['item', 'tsn']) i = 0 for common_node in taxonomy_element.findall('.//common'): if common_node.text.startswith('TSN: '): tsn = common_node.text[5:] self.selected_items_df.loc[i] = ['...', tsn] # try: # scientific_name = taxonomy.get_full_record_from_tsn(tsn)['scientificName']['combinedName'] # self.selected_items_df.loc[i] = [scientific_name, tsn] # except: # self.selected_items_df.loc[i] = ['...', tsn] # i += 1 self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model)
def add_tsn(self, index): indexes = self.ui.table_results.selectionModel().selectedRows() selected_indices = [int(index.row()) for index in list(indexes)] df = self.ui.table_results.model().dataframe() indices = df.index[selected_indices] for index in indices: if "combinedName" in df.columns: item_name = df.iloc[index]["combinedName"] else: item_name = str(df.iloc[index]["commonName"]) tsn = df.iloc[index]["tsn"] i = self.selected_items_df.index.max() + 1 if pd.isnull(i): i = 0 self.selected_items_df.loc[i] = [str(item_name), tsn] self.selected_model = utils.PandasModel(self.selected_items_df) self.table_include.setModel(self.selected_model)
def search_itis(self): QApplication.setOverrideCursor(Qt.WaitCursor) try: if str(self.ui.combo_search_type.currentText() ) == "Scientific name": results = taxonomy.search_by_scientific_name( str(self.ui.search_term.text())) else: results = taxonomy.search_by_common_name( str(self.ui.search_term.text())) model = utils.PandasModel(results) self.ui.table_results.setModel(model) QApplication.restoreOverrideCursor() except requests.exceptions.ConnectionError: QApplication.restoreOverrideCursor() msg = "This functionality requires an internet connection." msg += "\n Please retry latter." QMessageBox.information(None, "No internet connection", msg) self.close()
def add_tsn(self, index): try: indexes = self.ui.table_results.selectionModel().selectedRows() selected_indices = [int(index.row()) for index in list(indexes)] df = self.ui.table_results.model().dataframe() indexes = df.index[selected_indices] if df.shape[0] == 1: index = 0 elif selected_indices: index = selected_indices[0] else: return if "combinedName" in df.columns: item_name = df.iloc[index]["combinedName"] else: try: item_name = str(df.iloc[index]["commonName"]) except KeyError: msg = "Error, No taxon was selected in the Search Results table!" msg += "\nMake sure the ITIS search returned results and select one before clicking Add Selection. " QMessageBox.information(None, "Problem adding taxon", msg, parent=self) return None tsn = df.iloc[index]["tsn"] i = self.selected_items_df.index.max() + 1 if pd.isnull(i): i = 0 self.selected_items_df.loc[i] = [str(item_name), tsn] self.selected_model = utils.PandasModel(self.selected_items_df) self.ui.table_include.setModel(self.selected_model) except AttributeError: pass