예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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)
예제 #4
0
    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()
예제 #5
0
    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 = {}
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
    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)
예제 #9
0
    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()
예제 #10
0
    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