diff options
author | pravindalve | 2023-05-30 04:20:14 +0530 |
---|---|---|
committer | GitHub | 2023-05-30 04:20:14 +0530 |
commit | cbdd7ca21f1f673a3a739065098f7cc6c9c4b881 (patch) | |
tree | 595e888c38f00a314e751096b6bf636a544a5efe /ComponentSelector.py | |
parent | 7740d1ca0c2e6bf34900460b0c58fa4d528577fb (diff) | |
parent | 280c6aa89a15331fb76b7014957953dc72af6093 (diff) | |
download | Chemical-Simulator-GUI-master.tar.gz Chemical-Simulator-GUI-master.tar.bz2 Chemical-Simulator-GUI-master.zip |
Restructure Project and Deployment
Diffstat (limited to 'ComponentSelector.py')
-rw-r--r-- | ComponentSelector.py | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/ComponentSelector.py b/ComponentSelector.py deleted file mode 100644 index 56c6078..0000000 --- a/ComponentSelector.py +++ /dev/null @@ -1,180 +0,0 @@ -from PyQt5.QtCore import * -from PyQt5.QtWidgets import * -from PyQt5.QtGui import * -from PyQt5.uic import loadUiType -import os, sys -import pandas as pd -from Simulator.Databases.Databases import ChemsepDatabase -ui_dialog,_ = loadUiType('ComponentSelector.ui') - - -#df = pd.read_csv("compoundsDatabase.csv") - -compound_selected = [] #list storing components that are selected inintialised as empty - -class ComponentSelector(QDialog,ui_dialog): - def __init__(self,parent=None): - QDialog.__init__(self,parent) - - self.setupUi(self) - - self.dict1=dict()#empty dictionary which will store the obj and its compound - #self.DB1=#instance of Database class in Database.py module - self.instance=[ChemsepDatabase()] #list of all the instances - self.lines=[] - - for i in self.instance: - x=i.get_comp_name_list() - self.dict1[i]=x - self.lines+=x - #print(self.lines) - - - #self.DB1_list=self.DB1.get_comp_name_list() - #storingchemsep - #database compound list in DB1_list - #self.dict1[self.DB1]=self.DB1_list #storing the list as a value and the db as key in dictionary - #self.lines=self.DB1_list #combined list of all the edited compounds - - self.model = QStringListModel() - self.model.setStringList(self.lines) - - self.completer = QCompleter() - self.completer.setCaseSensitivity(Qt.CaseInsensitive) - self.completer.setModel(self.model) - - # QCompleter completes the text written in lineedit - self.lineEdit.setCompleter(self.completer) - self.compoundSelectButton.clicked.connect(self.compound_selection) - self.compoundSelectButton.setAutoDefault(False) - self.pushButton.clicked.connect(self.accept) - self.pushButton_2.clicked.connect(self.cancel) - self.pushButton_3.clicked.connect(self.remove_items) - - def final_list(self,*list_name): - self.list_final=[] - #add multiple lists - for i in list_name: - self.list_final+=i - return (self.list_final) - - def is_compound_selected(self): - if not compound_selected: - return False - else: - return True - - #attrib: - #CAS fro CAS Number - #CompoundID for Name - #Smiles for Molecular Formula - #MolecularWeight for Molecular Weight - -#the below function will match the entered compound and get the database obj - #of the corresponding database - - def get_object(self,component): - for ele in self.dict1: - values=self.dict1[ele] - for ind in values: - if ind ==component: - return(ele) - - -#the below finction removes the before added extra string from the cmpounds - def get_original_name(self,component,removing_attrib): - self.temp_comp= component.replace(removing_attrib,'') - return(self.temp_comp) - - def compound_selection(self, *args): - if len(args) == 2: - self.comp = args[1] #helpful when loading saved data - else: - self.comp = self.lineEdit.text() #gets entered text - if self.comp in self.lines: #matches with the db - if self.comp not in compound_selected: - compound_selected.append(self.comp) # appending compound in the list - self.obj=self.get_object(self.comp) #obj will store the key of the dictionary - #and thus store the instance of the class to which the component belongs - self.removing_attrib='(' + self.obj.name + ')' #getting the attribute that is to be removed - self.comp=self.get_original_name(self.comp,self.removing_attrib) - #getting only air, water etc from air chemsep etc - - - self.prop_list=self.obj.get_comp_prop(self.comp) #getting prop of the comp - #obj is the required class object - # self.creating_mo_file() - self.final_mo() - - self.lineEdit.clear() - #print(compound_selected) - - self.CAS=self.obj.get_value(self.comp,'CAS') - self.name=self.comp - self.molecular_formula=self.obj.get_value(self.comp, 'StructureFormula') - self.molecular_weight=self.obj.get_value(self.comp, 'MolecularWeight') - - dict={'CAS':self.CAS,'Name':self.name,'Molecular Formula':self.molecular_formula,'Molecular Weight':self.molecular_weight} - #converted everything to a dictionary which will be passes to addtable - #function as a parameter. - #print(dict) - self.add_to_table(dict) - else: - self.show_error() - - @staticmethod - def set_compounds(compounds): - # compound_selected = compounds - for i in compounds: - compound_selected.append(i) - - def add_to_table(self,a): - try: - row_position = self.tableWidget.rowCount() - self.tableWidget.insertRow(row_position) - self.tableWidget.setItem(row_position , 0, QTableWidgetItem(str(a['CAS']))) - self.tableWidget.setItem(row_position , 1, QTableWidgetItem(str(a['Name']))) - self.tableWidget.setItem(row_position , 2, QTableWidgetItem(str(a['Molecular Formula']))) - self.tableWidget.setItem(row_position , 3, QTableWidgetItem(str(a['Molecular Weight']))) - except Exception as e: - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - #print(exc_type, fname, exc_tb.tb_lineno) - - def add_compounds_to_list(self,comp): # which list? - self.item = QListWidgetItem() - self.item.setText(comp) - self.listWidget.addItem(self.item) - - def remove_items(self): - try: - item = self.tableWidget.item(self.tableWidget.currentRow(),1).text() + '(chemsep)' - self.tableWidget.removeRow(self.tableWidget.currentRow()) - compound_selected.remove(item) - except Exception as e: - print(e) - - def show_error(self): - QMessageBox.about(self, 'Important', "Selected Compound is not Available") - - def cancel(self): - compound_selected.clear() - self.tableWidget.setRowCount(0) - self.reject() - - def get_compounds(self): - return compound_selected - - def final_mo(self): - self.f_mo=open('Simulator/database.mo','w+') - self.f_mo.write('package database\n') - for line in self.prop_list: - self.f_mo.write(line) - self.f_mo.write('\n') - self.f_mo.write('\nend database;') - self.f_mo.close() - - def accept(self): - #self.parent().container.update_compounds() - return super().accept() -
\ No newline at end of file |