Source code for gui.core.LoadData

import os.path

import pandas as pd
from PyQt5 import QtWidgets

from gui.ui.LoadData import Ui_loadData
from gui.util.Modules import Modules
from libpyhat.spectral_data import SpectralData


[docs] class LoadData(Ui_loadData, Modules): """ Loads the data into the UI. The data needs to be a *.csv in order for this application to work """ # def delete(self): # Modules.data_count -= 1
[docs] def setupUi(self, Form): super().setupUi(Form) Modules.setupUi(self, Form)
[docs] def get_widget(self): return self.groupBox
[docs] def connectWidgets(self): self.newFilePushButton.clicked.connect( lambda: self.getDataButton_clicked(self.fileNameLineEdit) ) self.metacheckBox.stateChanged.connect( lambda: self.hide_field( self.metacheckBox, self.metalineEdit, self.metalabel ) ) self.spectralcheckBox.stateChanged.connect( lambda: self.hide_field( self.spectralcheckBox, self.spectLineEdit, self.spectLabel ) ) self.compcheckBox.stateChanged.connect( lambda: self.hide_field( self.compcheckBox, self.complineEdit, self.complabel ) ) self.hide_field( self.compcheckBox, self.complineEdit, self.complabel ) # Comp starts unchecked,
# so it should start off hidden
[docs] def hide_field(self, checkbox, lineEdit, label): if checkbox.isChecked(): lineEdit.setHidden(False) label.setHidden(False) else: lineEdit.setHidden(True) label.setHidden(True)
[docs] def getDataButton_clicked(self, lineEdit): filename, _filter = QtWidgets.QFileDialog.getOpenFileName( None, "Open Data " "File", self.outpath, "(*.csv)" ) lineEdit.setText(filename) if lineEdit.text() == "": lineEdit.setText("*.csv")
[docs] def run(self, filename=None, keyname=None): Modules.data_count += 1 self.count = Modules.data_count if filename is None: filename = self.fileNameLineEdit.text() if keyname is None: keyname = self.dataSetNameLineEdit.text() if self.spectralcheckBox.isChecked(): spect_label = self.spectLineEdit.text() else: spect_label = None if self.metacheckBox.isChecked(): meta_label = self.metalineEdit.text() else: meta_label = None if self.compcheckBox.isChecked(): comp_label = self.complineEdit.text() else: comp_label = None # if the datakey exists, add a number to it to make it unique number = 1 while keyname in self.datakeys: number += 1 keyname = keyname + ' - ' + str(number) print('Loading data file: ' + str(filename)) try: data = pd.read_csv( filename, header=[0, 1], verbose=False, encoding='utf-8-sig', skiprows=self.skipspinBox.value() ) except: data = pd.read_csv( filename, header=[0, 1], verbose=False, encoding='latin', skiprows=self.skipspinBox.value() ) self.data[keyname] = SpectralData( data, name=keyname, spect_label=spect_label, meta_label=meta_label, comp_label=comp_label ) self.data[keyname].remove_unnamed() self.data[keyname].remove_duplicates() self.data[keyname].remove_empty_spectra() self.list_amend(self.datakeys, self.count, keyname) self.datafiles[keyname] = os.path.basename(filename)
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = LoadData() ui.setupUi(Form) Form.show() sys.exit(app.exec_())