def submit_change(self): sender = self.sender() self.cbindlned = {"column_1": self.lnedColumn1.text().strip(), "column_2": self.lnedColumn2.text().strip()} self.cbindini = ini.InputHandler(name="cbind", lnedentry=self.cbindlned) self.facade.input_register(self.cbindini) self.facade.create_log_record("cbind") self._log = self.facade._tablelog["cbind"] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: self.cbindtable = hlp.cbind(self.facade._data, self.cbindlned["column_1"], self.cbindlned["column_2"]) except Exception as e: print(str(e)) self.error.showMessage("Could combine column values: " + str(e)) hlp.write_column_to_log(self.cbindlned, self._log, "cbind") if sender is self.btnPreview: self.viewEdit.set_data(self.cbindtable) self.preview.tabviewPreview.setModel(self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.cbindtable self.update_data.emit("update") self.close()
def submit_change(self): sender = self.sender() self.cbindlned = { 'column_1': self.lnedColumn1.text().strip(), 'column_2': self.lnedColumn2.text().strip() } self.cbindini = ini.InputHandler(name='cbind', lnedentry=self.cbindlned) self.facade.input_register(self.cbindini) self.facade.create_log_record('cbind') self._log = self.facade._tablelog['cbind'] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: self.cbindtable = hlp.cbind(self.facade._data, self.cbindlned['column_1'], self.cbindlned['column_2']) except Exception as e: print(str(e)) self.error.showMessage('Could combine column values: ' + str(e)) hlp.write_column_to_log(self.cbindlned, self._log, 'cbind') if sender is self.btnPreview: self.viewEdit.set_data(self.cbindtable) self.preview.tabviewPreview.setModel(self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.cbindtable self.update_data.emit('update') self.close()
def submit_change(self): sender = self.sender() self.widetolonglned = { 'value_columns': hlp.string_to_list(self.lnedValuecolumns.text()), 'datatype_name': self.cboxDatatypecolumn.currentText(), 'panel_data': self.ckPaneldata.isChecked() } self.widetolongini = ini.InputHandler( name='widetolong', lnedentry=self.widetolonglned) self.facade.input_register(self.widetolongini) self.facade.create_log_record('widetolong') self._log = self.facade._tablelog['widetolong'] try: if self.widetolonglned['panel_data'] is False: self.widetolongtable = hlp.wide_to_long( self.facade._data, value_columns=self.widetolonglned['value_columns'], value_column_name=self.widetolonglned['datatype_name']) else: temp = self.facade._data.copy() temp['id'] = temp.index self.widetolongtable = wide_to_long( temp, self.widetolonglned['value_columns'], i="id", j=self.widetolonglned['datatype_name']) self.widetolongtable[self.widetolonglned[ 'datatype_name']] = self.widetolongtable.index.get_level_values( self.widetolonglned['datatype_name']) self.widetolongtable.reset_index(drop=True, inplace=True) except Exception as e: print(str(e)) self.error.showMessage('Could not melt data: ', str(e)) try: assert self.widetolonglned['datatype_name'] != 'NULL' except Exception as e: print(str(e)) self.error.showMessage('Invalid datatype column: ' + str(e)) return if sender is self.btnPreview: self.widetolongmodel = view.PandasTableModel( self.widetolongtable) self.preview.tabviewPreview.setModel(self.widetolongmodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log(self.widetolonglned, self._log, 'widetolong') self.facade._data = self.widetolongtable self.update_data.emit('update') self.close()
def changeHorizontalHeader(self, index): """ method to update data model when column headers are changed """ oldHeader = self.facade._data.iloc[:, index].name newHeader, ok = QtGui.QInputDialog.getText(self, "Input", "New Column Label:") if ok: self.facade._data.rename(columns={oldHeader: newHeader}, inplace=True) self.facade.create_log_record("changecolumn") self._log = self.facade._tablelog["changecolumn"] hlp.write_column_to_log({"column_changes": {oldHeader: newHeader}}, self._log, "changecolumn") self.update_data_model("header_changes")
def submit_change(self): sender = self.sender() self.covarlned['columns'] = hlp.string_to_list( self.lnedColumns.text() ) self.covarini = ini.InputHandler( name='covarinfo', tablename='covartable', lnedentry=self.covarlned) self.facade.input_register(self.covarini) self.facade.create_log_record('covartable') self._log = self.facade._tablelog['covartable'] if self.covarlned['columns'][0] == '': print('in pass') pass else: try: self.facade._data[self.covarlned['columns']] except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Column names not valid: Check spacing ' + 'and headers.') raise ValueError('Column names are incorrect') try: self.covardata = ddf.DictionaryDataframe( self.facade._data, self.covarlned['columns'] ).convert_records() except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Could not concatenate columns') raise TypeError('Could not concatenate columns') self.facade.push_tables['covariates'] = self.covardata if sender is self.btnColumns: self.message.about(self, 'Status', 'Columns recorded') elif sender is self.btnPreview: self.covarmodel = views.PandasTableModelEdit( self.covardata) self.preview.tabviewPreview.setModel(self.covarmodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log( self.covarlned, self._log, 'covartable') self.close()
def submit_change(self): sender = self.sender() self.replacevaluelned = { 'column_name': self.lnedColumnname.text().strip(), 'value_from': self.lnedFrom.text(), 'value_to': self.lnedTo.text().strip(), 'all_columns': self.ckAllcolumns.isChecked() } self.replacevalueini = ini.InputHandler( name='replacevalue', lnedentry=self.replacevaluelned) self.facade.input_register(self.replacevalueini) self.facade.create_log_record('replacevalue') self._log = self.facade._tablelog['replacevalue'] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: if self.replacevaluelned['all_columns'] is True: self.replacevaluetable = self.facade._data.replace({ self.replacevaluelned['value_from']: self.replacevaluelned['value_to'] }) else: columntochange = self.replacevaluelned['column_name'] assert (columntochange is not '') is True self.replacevaluetable = self.facade._data.replace({ columntochange: { self.replacevaluelned['value_from']: self.replacevaluelned['value_to'] } }) self.previous_click = True except Exception as e: print(str(e)) self.error.showMessage('Could not replace values: ' + str(e)) hlp.write_column_to_log(self.replacevaluelned, self._log, 'replacevalue') if sender is self.btnPreview: self.viewEdit.set_data(self.replacevaluetable) self.preview.tabviewPreview.setModel(self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.replacevaluetable self.update_data.emit('replace_mod') self.close()
def submit_change(self): sender = self.sender() self.obslned = OrderedDict(( )) self.obsckbox = OrderedDict(( )) available = [ x for x,y in zip( list(self.obslned.keys()), list( self.obsckbox.values())) if y is False ] rawini = ini.InputHandler( name='rawinfo', tablename='rawtable', lnedentry= hlp.extract(self.obslned, available), checks=self.obsckbox) self.facade.input_register(rawini) self.facade.create_log_record('rawtable') self._log = self.facade._tablelog['rawtable'] try: self.rawdirector = self.facade.make_table('rawinfo') assert self.rawdirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Column(s) not identified') raise AttributeError('Column(s) not identified') self.obstable = self.rawdirector._availdf.copy() self.obsmodel = self.viewEdit(self.obstable) if sender is self.btnPreview: self.preview.tabviewPreview.setModel(self.obsmodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log( self.obslned, self._log, 'rawtable') self.close()
def changeHorizontalHeader(self, index): ''' method to update data model when column headers are changed ''' oldHeader = self.facade._data.iloc[:, index].name newHeader, ok = QtGui.QInputDialog.getText(self, 'Input', 'New Column Label:') if ok: self.facade._data.rename(columns={oldHeader: newHeader}, inplace=True) self.facade.create_log_record('changecolumn') self._log = self.facade._tablelog['changecolumn'] hlp.write_column_to_log({'column_changes': { oldHeader: newHeader }}, self._log, 'changecolumn') self.update_data_model('header_changes')
def submit_change(self): sender = self.sender() self.splitcolumnlned = { 'column_name': self.lnedColumnname.text().strip(), 'split_column_by': self.lnedSplitcolumnby.text() } print('split inputs: ', self.splitcolumnlned) self.splitcolumnini = ini.InputHandler( name='splitcolumn', lnedentry=self.splitcolumnlned ) self.facade.input_register(self.splitcolumnini) self.facade.create_log_record('splitcolumn') self._log = self.facade._tablelog['splitcolumn'] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: self.splitcolumntable = hlp.split_column( self.facade._data, self.splitcolumnlned['column_name'], self.splitcolumnlned['split_column_by'] ) self.previous_click = True except Exception as e: print(str(e)) self.error.showMessage( 'Could split column: ' + str(e)) hlp.write_column_to_log( self.splitcolumnlned, self._log, 'splitcolumn') if sender is self.btnPreview: self.viewEdit.set_data( self.splitcolumntable) self.preview.tabviewPreview.setModel( self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.splitcolumntable self.update_data.emit('update') self.close()
def submit_change(self): sender = self.sender() self.widetolonglned = { 'value_columns': hlp.string_to_list(self.lnedValuecolumns.text()), 'datatype_name': self.cboxDatatypecolumn.currentText() } self.widetolongini = ini.InputHandler( name='widetolong', lnedentry=self.widetolonglned ) self.facade.input_register(self.widetolongini) self.facade.create_log_record('widetolong') self._log = self.facade._tablelog['widetolong'] try: self.widetolongtable = hlp.wide_to_long( self.facade._data, value_columns=self.widetolonglned['value_columns'], value_column_name=self.widetolonglned['datatype_name'] ) except Exception as e: print(str(e)) self.error.showMessage('Could not melt data: ', str(e)) try: assert self.widetolonglned['datatype_name'] != 'NULL' except Exception as e: print(str(e)) self.error.showMessage( 'Invalid datatype column: ' + str(e)) return hlp.write_column_to_log( self.widetolonglned, self._log, 'widetolong') if sender is self.btnPreview: self.widetolongmodel = view.PandasTableModel( self.widetolongtable) self.preview.tabviewPreview.setModel( self.widetolongmodel) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.widetolongtable self.update_data.emit('update') self.close()
def submit_change(self): sender = self.sender() self.addsitecolumn = { 'addsite': self.lnedAddsite.text() } # Input handler self.addsiteini = ini.InputHandler( name='addsite', lnedentry=self.addsitecolumn) self.facade.input_register(self.addsiteini) self.sitelabel = self.addsitecolumn['addsite'] # Logger self.facade.create_log_record('addsite') self._log = self.facade._tablelog['addsite'] if sender is self.btnAddsite: try: self.facade._data['site_added'] = self.sitelabel self.message.about(self, 'Status', 'Site column added') except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Could create column for sites: ' + str(e) ) raise ValueError( 'Could create column for sites: ' + str(e) ) if sender is self.btnSaveClose: hlp.write_column_to_log( self.addsitecolumn, self._log, 'addsite' ) try: assert 'site_added' in self.facade._data.columns.values.tolist() except Exception as e: print(str(e)) raise AttributeError(str(e)) self.error.showMessage( 'Could not add site column: ' + str(e) ) self.close() elif sender is self.btnCancel: self.close()
def submit_change(self): sender = self.sender() self.covarlned['columns'] = hlp.string_to_list(self.lnedColumns.text()) self.covarini = ini.InputHandler(name='covarinfo', tablename='covartable', lnedentry=self.covarlned) self.facade.input_register(self.covarini) self.facade.create_log_record('covartable') self._log = self.facade._tablelog['covartable'] if self.covarlned['columns'][0] == '': print('in pass') pass else: try: self.facade._data[self.covarlned['columns']] except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Column names not valid: Check spacing ' + 'and headers.') raise ValueError('Column names are incorrect') try: self.covardata = ddf.DictionaryDataframe( self.facade._data, self.covarlned['columns']).convert_records() except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Could not concatenate columns') raise TypeError('Could not concatenate columns') self.facade.push_tables['covariates'] = self.covardata if sender is self.btnColumns: self.message.about(self, 'Status', 'Columns recorded') elif sender is self.btnPreview: self.covarmodel = views.PandasTableModelEdit(self.covardata) self.preview.tabviewPreview.setModel(self.covarmodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log(self.covarlned, self._log, 'covartable') self.close()
def changeHorizontalHeader(self, index): ''' method to update data model when column headers are changed ''' oldHeader = self.facade._data.iloc[:,index].name newHeader, ok = QtGui.QInputDialog.getText( self, 'Input', 'New Column Label:') if ok: self.facade._data.rename( columns={oldHeader:newHeader}, inplace=True) self.facade.create_log_record('changecolumn') self._log = self.facade._tablelog['changecolumn'] hlp.write_column_to_log( { 'column_changes': { oldHeader: newHeader} }, self._log, 'changecolumn' ) self.update_data_model('header_changes')
def submit_change(self): sender = self.sender() self.obslned = OrderedDict(()) self.obsckbox = OrderedDict(()) available = [ x for x, y in zip(list(self.obslned.keys()), list(self.obsckbox.values())) if y is False ] rawini = ini.InputHandler(name='rawinfo', tablename='rawtable', lnedentry=hlp.extract( self.obslned, available), checks=self.obsckbox) self.facade.input_register(rawini) self.facade.create_log_record('rawtable') self._log = self.facade._tablelog['rawtable'] try: self.rawdirector = self.facade.make_table('rawinfo') assert self.rawdirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Column(s) not identified') raise AttributeError('Column(s) not identified') self.obstable = self.rawdirector._availdf.copy() self.obsmodel = self.viewEdit(self.obstable) if sender is self.btnPreview: self.preview.tabviewPreview.setModel(self.obsmodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log(self.obslned, self._log, 'rawtable') self.close()
def submit_change(self): sender = self.sender() self.addsitecolumn = {'addsite': self.lnedAddsite.text()} # Input handler self.addsiteini = ini.InputHandler(name='addsite', lnedentry=self.addsitecolumn) self.facade.input_register(self.addsiteini) self.sitelabel = self.addsitecolumn['addsite'] # Logger self.facade.create_log_record('addsite') self._log = self.facade._tablelog['addsite'] if sender is self.btnAddsite: try: self.facade._data['site_added'] = self.sitelabel self.message.about(self, 'Status', 'Site column added') except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Could create column for sites: ' + str(e)) raise ValueError('Could create column for sites: ' + str(e)) if sender is self.btnSaveClose: hlp.write_column_to_log(self.addsitecolumn, self._log, 'addsite') try: assert 'site_added' in self.facade._data.columns.values.tolist( ) except Exception as e: print(str(e)) raise AttributeError(str(e)) self.error.showMessage('Could not add site column: ' + str(e)) self.close() elif sender is self.btnCancel: self.close()
def submit_change(self): sender = self.sender() self.splitcolumnlned = { 'column_name': self.lnedColumnname.text().strip(), 'split_column_by': self.lnedSplitcolumnby.text() } print('split inputs: ', self.splitcolumnlned) self.splitcolumnini = ini.InputHandler( name='splitcolumn', lnedentry=self.splitcolumnlned) self.facade.input_register(self.splitcolumnini) self.facade.create_log_record('splitcolumn') self._log = self.facade._tablelog['splitcolumn'] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: self.splitcolumntable = hlp.split_column( self.facade._data, self.splitcolumnlned['column_name'], self.splitcolumnlned['split_column_by']) self.previous_click = True except Exception as e: print(str(e)) self.error.showMessage('Could split column: ' + str(e)) hlp.write_column_to_log(self.splitcolumnlned, self._log, 'splitcolumn') if sender is self.btnPreview: self.viewEdit.set_data(self.splitcolumntable) self.preview.tabviewPreview.setModel(self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.splitcolumntable self.update_data.emit('update') self.close()
def save_close(self): self.update_data() session = orm.Session() sitecheck = session.query(orm.Sitetable.siteid).order_by( orm.Sitetable.siteid) session.close() sitecheckdf = read_sql(sitecheck.statement, sitecheck.session.bind) changed_df = self.sitetablemodel.data(None, QtCore.Qt.UserRole) changed_site_list = changed_df['siteid'].values.tolist() if sitecheckdf is not None: if len(sitecheckdf) == 0: checker = True else: records_entered = sitecheckdf['siteid'].values.tolist() check = [ x for x in list(set(records_entered)) if x in changed_site_list ] checker = (len(check) == 0) else: checker = True if checker is True: pass else: self._log.debug('SiteId present under different LTER') self.error.showMessage('Site abbreviations already in database ' + 'from an different LTER. Please modify ' + 'site abbreviations.') raise AttributeError('SiteID already present under different LTER') self.save_data = self.sitetablemodel.data(None, QtCore.Qt.UserRole) # Updating site levels self.facade.register_site_levels(self.facade._data[ self.siteloc['siteid']].drop_duplicates().values.tolist()) if len(self.save_data) == 0: self.save_data = self.save_data.append( DataFrame( { 'siteid': 'NULL', 'lat': 'nan', 'lng': 'nan', 'descript': 'NULL' }, index=[0])) else: pass lterid_df = hlp.produce_null_df(1, ['lterid'], len(self.save_data), self.lter) print(lterid_df) self.save_data = concat([self.save_data, lterid_df], axis=1).reset_index(drop=True) print(self.save_data) self.facade.push_tables['sitetable'] = self.save_data hlp.write_column_to_log(self.sitelned, self._log, 'sitetable_c') oldsitetable = hlp.produce_null_df( len(self.save_data.columns), self.save_data.columns.values.tolist(), len(self.save_data), 'nan') hlp.updated_df_values(oldsitetable, self.save_data, self._log, 'sitetable') self.climatesite_unlocks.emit(self.facade._data) self._log.debug('facade site levels' + ' '.join(self.facade._valueregister['sitelevels'])) self.submit_change() self.close()
def write_to_log(self, dict_obj): self.facade.create_log_record('changecell') self._log = self.facade._tablelog['changecell'] hlp.write_column_to_log( dict_obj, self._log, 'changecell')
def submit_change(self): sender = self.sender() self.replacevaluelned = { 'column_name': self.lnedColumnname.text().strip(), 'value_from': self.lnedFrom.text(), 'value_to': self.lnedTo.text().strip(), 'all_columns': self.ckAllcolumns.isChecked() } self.replacevalueini = ini.InputHandler( name='replacevalue', lnedentry=self.replacevaluelned ) self.facade.input_register(self.replacevalueini) self.facade.create_log_record('replacevalue') self._log = self.facade._tablelog['replacevalue'] if self.previous_click is True: self.viewEdit = view.PandasTableModelEdit(None) else: pass try: if self.replacevaluelned['all_columns'] is True: self.replacevaluetable = self.facade._data.replace( { self.replacevaluelned['value_from']: self.replacevaluelned['value_to'] } ) else: columntochange = self.replacevaluelned['column_name'] assert (columntochange is not '') is True self.replacevaluetable = self.facade._data.replace( { columntochange: { self.replacevaluelned['value_from']: self.replacevaluelned['value_to'] } } ) self.previous_click = True except Exception as e: print(str(e)) self.error.showMessage( 'Could not replace values: ' + str(e)) hlp.write_column_to_log( self.replacevaluelned, self._log, 'replacevalue') if sender is self.btnPreview: self.viewEdit.set_data( self.replacevaluetable) self.preview.tabviewPreview.setModel( self.viewEdit) self.preview.show() elif sender is self.btnSaveClose: self.facade._data = self.replacevaluetable self.update_data.emit('replace_mod') self.close()
def submit_change(self): ''' Method to get data from user form and make project table to upload ''' sender = self.sender() self.form_entries = OrderedDict(( ('samplingunits', self.dtype( self.lnedDatatypeunits.text() != '', self.lnedDatatypeunits.text(), None )), ('datatype', self.dtype( self.cboxDatatype.currentText() != '', self.cboxDatatype.currentText(), None )), ('structured_type_1', self.structure( self.ckStructure1.isChecked(), self.lnedStructure1.text(), self.lnedStructureunits1.text() )), ('structured_type_2', self.structure( self.ckStructure2.isChecked(), self.lnedStructure2.text(), self.lnedStructureunits2.text() )), ('structured_type_3', self.structure( self.ckStructure3.isChecked(), self.lnedStructure3.text(), self.lnedStructureunits3.text() )), ('samplefreq', self.sampfreq( self.cboxSamplingfrequency.currentText() != 'NULL', self.cboxSamplingfrequency.currentText(), None )), ('studytype', self.studytype( self.cboxStudytype.currentText() != 'NULL', self.cboxStudytype.currentText(), None )), ('community', self.community( True, ( 'yes' if self.rbtnCommunityyes.isChecked() is True else 'no' ), None )), ('spatial_replication_level_1_extent', self.ext( self.ckSpatialextent1.isChecked(), self.lnedSpatialextent1.text(), self.lnedSpatialextentunits1.text() )), ('spatial_replication_level_2_extent', self.ext( self.ckSpatialextent2.isChecked(), self.lnedSpatialextent2.text(), self.lnedSpatialextentunits2.text() )), ('spatial_replication_level_3_extent', self.ext( self.ckSpatialextent3.isChecked(), self.lnedSpatialextent3.text(), self.lnedSpatialextentunits3.text() )), ('spatial_replication_level_4_extent', self.ext( self.ckSpatialextent4.isChecked(), self.lnedSpatialextent4.text(), self.lnedSpatialextentunits4.text() )), ('spatial_replication_level_5_extent', self.ext( self.ckSpatialextent5.isChecked(), self.lnedSpatialextent5.text(), self.lnedSpatialextentunits5.text() )), ('treatment_type_1', self.treatments( self.cboxTreatment1.currentText() != 'NULL', self.cboxTreatment1.currentText(), None )), ('treatment_type_2', self.treatments( self.cboxTreatment2.currentText() != 'NULL', self.cboxTreatment2.currentText(), None )), ('treatment_type_3', self.treatments( self.cboxTreatment3.currentText() != 'NULL', self.cboxTreatment3.currentText(), None )), ('control_group', self.treatments( self.ckControlgroup.isChecked(), self.lnedControlgroup.text(), None )), ('derived', self.derived( self.cboxDerived.currentText() != 'NULL', self.cboxDerived.currentText(), None )), ('authors', self.contacts( self.lnedAuthor.text() != '', self.lnedAuthor.text(), None )), ('authors_contact', self.contacts( self.lnedContact.text() != '', self.lnedContact.text(), None )) )) self.mainini = ini.InputHandler( name='maininfo', tablename='project_table', lnedentry=self.form_entries ) self.facade.input_register(self.mainini) try: self.maindirector = self.facade.make_table('maininfo') except Exception as e: print(str(e)) self.error.showMessage(str(e)) self.facade.create_log_record('project_table') self._log = self.facade._tablelog['project_table'] self.project_table = self.maindirector._availdf.copy() try: check_list = [ 'authors', 'authors_contact', 'studytype', 'derived', 'community', 'samplefreq', 'datatype' ] record = None for i, item in enumerate(check_list): print(item, ': ', self.form_entries[item].entry) record = item assert ( self.form_entries[item].entry != 'NULL') is True assert ( self.form_entries[item].entry != '') is True if sender is self.btnPreview: self.mainmodel = self.viewEdit(self.project_table) self.preview.tabviewPreview.setModel(self.mainmodel) self.preview.show() return else: pass self.facade.push_tables['project_table'] = self.project_table self._log.debug( 'project_table mod: ' + ' '.join(self.project_table.columns.values.tolist())) orm.convert_types(self.project_table, orm.project_types) hlp.write_column_to_log( self.form_entries, self._log, 'project_table') self.close() except Exception as e: print(str(e)) self.error.showMessage( 'Invalid entry: ' + record )
def write_to_log(self, dict_obj): self.facade.create_log_record('changecell') self._log = self.facade._tablelog['changecell'] hlp.write_column_to_log(dict_obj, self._log, 'changecell')
def submit_change(self): sender = self.sender() self.timelned = { "dayname": self.lnedDay.text(), "dayform": self.cboxDay.currentText(), "monthname": self.lnedMonth.text(), "monthform": self.cboxMonth.currentText(), "yearname": self.lnedYear.text(), "yearform": self.cboxYear.currentText(), "jd": self.ckJulian.isChecked(), "hms": self.ckMonthSpelling.isChecked(), } print("dict: ", self.timelned) for i, item in enumerate(self.timelned.values()): print("dict values: ", list(self.timelned.keys())[i], item) # Input handler self.timeini = ini.InputHandler(name="timeinfo", tablename="timetable", lnedentry=self.timelned) self.facade.input_register(self.timeini) # Initiating time parser class self.timetable = tmpa.TimeParse(self.facade._data, self.timelned) # Logger self.facade.create_log_record("timetable") self._log = self.facade._tablelog["timetable"] try: # Calling formater method timeview = self.timetable.formater().copy() timeview_og_col = timeview.columns.values.tolist() timeview.columns = [x + "_derived" for x in timeview_og_col] timeview = concat([timeview, self.facade._data], axis=1) print("timeview first try:", timeview) except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage("Could not format dates - " + "Check entries for errors") raise ValueError("Could not format dates - " + "Check entries for errors") self.facade._valueregister["sitelevels"] if sender is self.btnPreview: timeview = timeview.applymap(str) self.timemodel = self.viewEdit(timeview) self.preview.tabviewPreview.setModel(self.timemodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log(self.timelned, self._log, "timetable") try: timeview.loc[1, "day_derived"] = to_numeric(timeview["day_derived"]) timeview["month_derived"] = to_numeric(timeview["month_derived"]) timeview["year_derived"] = to_numeric(timeview["year_derived"]) except Exception as e: print(str(e)) pass try: self.facade.push_tables["timetable"] = timeview except Exception as e: print(str(e)) try: assert timeview is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage("Could not convert data to integers") raise TypeError("Could not convert data to integers") self.close()
def submit_change(self): sender = self.sender() self.timelned = { 'dayname': self.lnedDay.text(), 'dayform': self.cboxDay.currentText(), 'monthname': self.lnedMonth.text(), 'monthform': self.cboxMonth.currentText(), 'yearname': self.lnedYear.text(), 'yearform': self.cboxYear.currentText(), 'jd': self.ckJulian.isChecked(), 'hms': self.ckMonthSpelling.isChecked() } print('dict: ', self.timelned) for i, item in enumerate(self.timelned.values()): print('dict values: ', list(self.timelned.keys())[i], item) # Input handler self.timeini = ini.InputHandler(name='timeinfo', tablename='timetable', lnedentry=self.timelned) self.facade.input_register(self.timeini) # Initiating time parser class self.timetable = tmpa.TimeParse(self.facade._data, self.timelned) # Logger self.facade.create_log_record('timetable') self._log = self.facade._tablelog['timetable'] try: # Calling formater method timeview = self.timetable.formater().copy() timeview_og_col = timeview.columns.values.tolist() timeview.columns = [x + '_derived' for x in timeview_og_col] timeview = concat([timeview, self.facade._data], axis=1) except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Could not format dates - ' + 'Check entries for errors') raise ValueError('Could not format dates - ' + 'Check entries for errors') self.facade._valueregister['sitelevels'] if sender is self.btnPreview: timeview = timeview.applymap(str) self.timemodel = self.viewEdit(timeview) self.preview.tabviewPreview.setModel(self.timemodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log(self.timelned, self._log, 'timetable') try: timeview.loc[1, 'day_derived'] = to_numeric( timeview['day_derived']) timeview['month_derived'] = to_numeric( timeview['month_derived']) timeview['year_derived'] = to_numeric(timeview['year_derived']) except Exception as e: print(str(e)) pass try: self.facade.push_tables['timetable'] = (timeview) except Exception as e: print(str(e)) print('save block: ', timeview.columns) print('save block: ', timeview) try: assert timeview is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Could not convert data to integers') raise TypeError('Could not convert data to integers') self.close()
def submit_change(self): ''' Method to take user input for the taxa dialog box, pass the information to the user facade, create the taxa table, and then rename colums as necessary. ''' sender = self.sender() self.taxalned = OrderedDict( (('common_name', self.lnedCommonname.text().strip()), ('sppcode', self.lnedSppCode.text().strip()), ('kingdom', self.lnedKingdom.text().strip()), ('subkingdom', self.lnedSubkingdom.text().strip()), ('infrakingdom', self.lnedInfrakingdom.text().strip()), ('superdivision', self.lnedSuperdivision.text().strip()), ('division', self.lnedDivision.text().strip()), ('subdivision', self.lnedSubdivision.text().strip()), ('superphylum', self.lnedSuperphylum.text().strip()), ('phylum', self.lnedPhylum.text().strip()), ('subphylum', self.lnedSubphylum.text().strip()), ('clss', self.lnedClass.text().strip()), ('subclass', self.lnedSubclass.text().strip()), ('ordr', self.lnedOrder.text().strip()), ('family', self.lnedFamily.text().strip()), ('genus', self.lnedGenus.text().strip()), ('species', self.lnedSpp.text().strip()))) self.taxackbox = OrderedDict( (('common_name', self.ckCommonname.isChecked()), ('sppcode', self.ckSppCode.isChecked()), ('kingdom', self.ckKingdom.isChecked()), ('subkingdom', self.ckSubkingdom.isChecked()), ('infrakingdom', self.ckInfrakingdom.isChecked()), ('superdivision', self.ckSuperdivision.isChecked()), ('division', self.ckDivision.isChecked()), ('subdivision', self.ckSubdivision.isChecked()), ('superphylum', self.ckSuperphylum.isChecked()), ('phylum', self.ckPhylum.isChecked()), ('subphylum', self.ckSubphylum.isChecked()), ('clss', self.ckClass.isChecked()), ('subclass', self.ckSubclass.isChecked()), ('ordr', self.ckOrder.isChecked()), ('family', self.ckFamily.isChecked()), ('genus', self.ckGenus.isChecked()), ('species', self.ckSpp.isChecked()))) # NEED TO IMPLEMNT METHODS TO CREATE COLUMNS FROM # USER INPUT (should be easy) !!!!!!!!! self.taxacreate = {'taxacreate': self.ckCreateTaxa.isChecked()} self.available = [ x for x, y in zip(list(self.taxalned.keys()), list(self.taxackbox.values())) if y is True ] self.taxaini = ini.InputHandler(name='taxainfo', tablename='taxa_table', lnedentry=hlp.extract( self.taxalned, self.available), checks=self.taxacreate) self.facade.input_register(self.taxaini) self.facade.create_log_record('taxa_table') self._log = self.facade._tablelog['taxa_table'] try: print('about to make taxa table') self.taxadirector = self.facade.make_table('taxainfo') assert self.taxadirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Column(s) not identified') raise AttributeError('Column(s) not identified: ' + str(e)) self.taxa_table = self.taxadirector._availdf.copy() self.taxamodel = self.viewEdit(self.taxa_table) if sender is self.btnTaxasubmit: self.preview.tabviewPreview.setModel(self.taxamodel) self.preview.show() elif sender is self.btnSaveClose: # Convert to strings and strip #self.taxa_table = self.taxa_table.applymap(str) #self.taxa_table = self.taxa_table.applymap(lambda x: x.strip()) self.facade.push_tables['taxa_table'] = self.taxa_table hlp.write_column_to_log(self.taxalned, self._log, 'taxa_table') self.saved = True self.close()
def save_close(self): self.update_data() session = orm.Session() sitecheck = session.query( orm.Sitetable.siteid).order_by( orm.Sitetable.siteid) session.close() sitecheckdf = read_sql( sitecheck.statement, sitecheck.session.bind) changed_df = self.sitetablemodel.data( None, QtCore.Qt.UserRole) changed_site_list = changed_df['siteid'].values.tolist() if sitecheckdf is not None: if len(sitecheckdf) == 0: checker = True else: records_entered = sitecheckdf[ 'siteid'].values.tolist() check = [ x for x in list(set(records_entered)) if x in changed_site_list] checker = (len(check) == 0) else: checker = True if checker is True: pass else: self._log.debug('SiteId present under different LTER') self.error.showMessage( 'Site abbreviations already in database ' + 'from an different LTER. Please modify ' + 'site abbreviations.') raise AttributeError( 'SiteID already present under different LTER') self.save_data = self.sitetablemodel.data( None, QtCore.Qt.UserRole) # Updating site levels self.facade.register_site_levels( self.facade._data[ self.siteloc[ 'siteid']].drop_duplicates().values.tolist()) if len(self.save_data) == 0: self.save_data= self.save_data.append( DataFrame( { 'siteid':'NULL', 'lat': 'nan', 'lng': 'nan', 'descript': 'NULL' }, index=[0]) ) else: pass lterid_df = hlp.produce_null_df( 1, ['lterid'], len(self.save_data), self.lter) print(lterid_df) self.save_data = concat( [self.save_data, lterid_df] , axis=1).reset_index(drop=True) print(self.save_data) self.facade.push_tables['sitetable'] = self.save_data hlp.write_column_to_log( self.sitelned, self._log, 'sitetable_c') oldsitetable = hlp.produce_null_df( len(self.save_data.columns), self.save_data.columns.values.tolist(), len(self.save_data), 'nan' ) hlp.updated_df_values( oldsitetable, self.save_data, self._log, 'sitetable' ) self.climatesite_unlocks.emit(self.facade._data) self._log.debug( 'facade site levels' + ' '.join(self.facade._valueregister['sitelevels'])) self.submit_change() self.close()
def save_close(self): ''' Method to save the study_site_table as it is seen by the user (matching sites that were accepted by user are removed from the saved table because it will be pushed) ''' update_message = QtGui.QMessageBox.question( self,'Message', 'Did you update records?', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if update_message == QtGui.QMessageBox.No: return else: pass # Retrieve study_site_table data from user view save_data = self.sitetablemodel.data( None, QtCore.Qt.UserRole) self.save_data = save_data.drop_duplicates() print('saved data (initial): ', self.save_data) self.facade.register_site_levels( self.facade._data[ self.siteloc[ 'study_site_key']].drop_duplicates().values.tolist()) # If there are no site because they are already # in the database then create an empty dataframe if len(self.save_data) == 0: self.save_data= self.save_data.append( DataFrame( { 'study_site_key':'NULL', 'lat_study_site': 'nan', 'lng_study_site': 'nan', 'descript': 'NULL' }, index=[0]) ) else: pass # Append dataframe with current LTER lterid_df = hlp.produce_null_df( 1, ['lter_table_fkey'], len(self.save_data), self.lter) print(lterid_df) self.save_data = concat( [self.save_data, lterid_df] , axis=1).reset_index(drop=True) #Convert types and strip stings numeric_cols = ['lat_study_site', 'lng_study_site'] self.save_data[ self.save_data.columns.difference(numeric_cols)] = self.save_data[ self.save_data.columns.difference(numeric_cols)].applymap(str) self.save_data[ self.save_data.columns.difference(numeric_cols)] = self.save_data[ self.save_data.columns.difference(numeric_cols)].applymap( lambda x: x.strip()) self.save_data[numeric_cols] = to_numeric( self.save_data[numeric_cols], errors='coerce') print('Pushed dataset: ', self.save_data) self.facade.push_tables['study_site_table'] = self.save_data # Helpers to keep track of user changes to site names hlp.write_column_to_log( self.sitelned, self._log, 'sitetable_c') oldsitetable = hlp.produce_null_df( len(self.save_data.columns), self.save_data.columns.values.tolist(), len(self.save_data), 'nan' ) hlp.updated_df_values( oldsitetable, self.save_data, self._log, 'sitetable' ) # Signal to confim this form has been completed and # user can move on to other tables self.site_unlocks.emit('study_site_mod') site_unsorted = self.facade._data[ self.siteloc[ 'study_site_key']].drop_duplicates().values.tolist() site_unsorted.sort() self.sitelevels = site_unsorted self._log.debug( 'facade site levels' + ' '.join(self.facade._valueregister['sitelevels'])) self._log.debug( 'sitelevels (Save Block): ' + ' '.join(self.sitelevels)) self.saved.append(1) self.close()
def save_close(self): ''' Method to save the study_site_table as it is seen by the user (matching sites that were accepted by user are removed from the saved table because it will be pushed) ''' self.updated_from_query_matches = False # Retrieve study_site_table data from user view self.save_data = self.sitetablemodel.data(None, QtCore.Qt.UserRole) # If there are no site because they are already # in the database then create an empty dataframe if len(self.save_data) == 0: self.save_data = self.save_data.append( DataFrame( { 'study_site_key': 'NULL', 'lat_study_site': 'nan', 'lng_study_site': 'nan', 'descript': 'NULL' }, index=[0])) else: pass # Append dataframe with current LTER lterid_df = hlp.produce_null_df(1, ['lter_table_fkey'], len(self.save_data), self.lter) print(lterid_df) self.save_data = concat([self.save_data, lterid_df], axis=1).reset_index(drop=True) #Convert types and strip stings numeric_cols = ['lat_study_site', 'lng_study_site'] self.save_data[self.save_data.columns.difference( numeric_cols)] = self.save_data[self.save_data.columns.difference( numeric_cols)].applymap(str) self.save_data[self.save_data.columns.difference( numeric_cols)] = self.save_data[self.save_data.columns.difference( numeric_cols)].applymap(lambda x: x.strip()) self.save_data[numeric_cols] = to_numeric(self.save_data[numeric_cols], errors='coerce') print('Pushed dataset: ', self.save_data) self.facade.push_tables['study_site_table'] = self.save_data # Helpers to keep track of user changes to site names hlp.write_column_to_log(self.sitelned, self._log, 'sitetable_c') oldsitetable = hlp.produce_null_df( len(self.save_data.columns), self.save_data.columns.values.tolist(), len(self.save_data), 'nan') hlp.updated_df_values(oldsitetable, self.save_data, self._log, 'sitetable') # Signal to confim this form has been completed and # user can move on to other tables self.site_unlocks.emit(self.facade._data) self._log.debug('facade site levels' + ' '.join(self.facade._valueregister['sitelevels'])) self._log.debug( 'sitelevels (Save Block): ' + ' '.join(self.save_data['study_site_key'].values.tolist())) self.close()
def submit_change(self): ''' Method to take user input for the taxa dialog box, pass the information to the user facade, create the taxa table, and then rename colums as necessary. ''' sender = self.sender() self.taxalned = OrderedDict(( ('common_name', self.lnedCommonname.text().strip()), ('sppcode', self.lnedSppCode.text().strip()), ('kingdom', self.lnedKingdom.text().strip()), ('subkingdom', self.lnedSubkingdom.text().strip()), ('infrakingdom', self.lnedInfrakingdom.text().strip()), ('superdivision', self.lnedSuperdivision.text().strip()), ('division', self.lnedDivision.text().strip()), ('subsubdivision', self.lnedSubdivision.text().strip()), ('superphylum', self.lnedSuperphylum.text().strip()), ('phylum', self.lnedPhylum.text().strip()), ('subphylum', self.lnedSubphylum.text().strip()), ('clss', self.lnedClass.text().strip()), ('subclass', self.lnedSubclass.text().strip()), ('ordr', self.lnedOrder.text().strip()), ('family', self.lnedFamily.text().strip()), ('genus', self.lnedGenus.text().strip()), ('species', self.lnedSpp.text().strip()) )) self.taxackbox = OrderedDict(( ('common_name', self.ckCommonname.isChecked()), ('sppcode', self.ckSppCode.isChecked()), ('kingdom', self.ckKingdom.isChecked()), ('subkingdom', self.ckSubkingdom.isChecked()), ('infrakingdom', self.ckInfrakingdom.isChecked()), ('superdivision', self.ckSuperdivision.isChecked()), ('division', self.ckDivision.isChecked()), ('subsubdivision', self.ckSubdivision.isChecked()), ('superphylum', self.ckSuperphylum.isChecked()), ('phylum', self.ckPhylum.isChecked()), ('subphylum', self.ckSubphylum.isChecked()), ('clss', self.ckClass.isChecked()), ('subclass', self.ckSubclass.isChecked()), ('ordr', self.ckOrder.isChecked()), ('family', self.ckFamily.isChecked()), ('genus', self.ckGenus.isChecked()), ('species', self.ckSpp.isChecked()) )) # NEED TO IMPLEMNT METHODS TO CREATE COLUMNS FROM # USER INPUT (should be easy) !!!!!!!!! self.taxacreate = { 'taxacreate': self.ckCreateTaxa.isChecked() } self.available = [ x for x,y in zip( list(self.taxalned.keys()), list( self.taxackbox.values())) if y is True ] self.taxaini = ini.InputHandler( name='taxainfo', tablename='taxa_table', lnedentry=hlp.extract(self.taxalned, self.available), checks=self.taxacreate ) self.facade.input_register(self.taxaini) self.facade.create_log_record('taxa_table') self._log = self.facade._tablelog['taxa_table'] try: print('about to make taxa table') self.taxadirector = self.facade.make_table( 'taxainfo') assert self.taxadirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Column(s) not identified') raise AttributeError( 'Column(s) not identified: ' + str(e)) self.taxa_table = self.taxadirector._availdf.copy() self.taxamodel = self.viewEdit(self.taxa_table) if sender is self.btnTaxasubmit: self.preview.tabviewPreview.setModel(self.taxamodel) self.preview.show() elif sender is self.btnSaveClose: # Convert to strings and strip -- not using, screws up # matching down the line #self.taxa_table = self.taxa_table.applymap(str) #self.taxa_table = self.taxa_table.applymap(lambda x: x.strip()) self.facade.push_tables['taxa_table'] = self.taxa_table hlp.write_column_to_log( self.taxalned, self._log, 'taxa_table') self.saved = True self.close()
def submit_change(self): sender = self.sender() self.obslned = OrderedDict(( ('spatial_replication_level_2', self.lnedRep2.text()), ('spatial_replication_level_3', self.lnedRep3.text()), ('spatial_replication_level_4', self.lnedRep4.text()), ('spatial_replication_level_5', self.lnedRep5.text()), ('structured_type_1', self.lnedStructure1.text()), ('structured_type_2', self.lnedStructure2.text()), ('structured_type_3', self.lnedStructure3.text()), ('treatment_type_1', self.lnedTreatment1.text()), ('treatment_type_2', self.lnedTreatment2.text()), ('treatment_type_3', self.lnedTreatment3.text()), ('unitobs', self.lnedRaw.text()) )) self.obsckbox = OrderedDict(( ('spatial_replication_level_2', self.ckRep2.isChecked()), ('spatial_replication_level_3', self.ckRep3.isChecked()), ('spatial_replication_level_4', self.ckRep4.isChecked()), ('spatial_replication_level_5', self.ckRep5.isChecked()), ('structured_type_1', self.ckStructure1.isChecked()), ('structured_type_2', self.ckStructure2.isChecked()), ('structured_type_3', self.ckStructure3.isChecked()), ('treatment_type_1', self.ckTreatment1.isChecked()), ('treatment_type_2', self.ckTreatment2.isChecked()), ('treatment_type_3', self.ckTreatment3.isChecked()), ('unitobs', True) )) self.table = { 'count_table': self.rbtnCount.isChecked(), 'biomass_table': self.rbtnBiomass.isChecked(), 'density_table': self.rbtnDensity.isChecked(), 'percent_cover_table': self.rbtnPercentcover.isChecked(), 'individual_table': self.rbtnIndividual.isChecked() } available = [ x for x,y in zip( list(self.obslned.keys()), list( self.obsckbox.values())) if y is True ] try: self.tablename = [ x for x, y in zip(list(self.table.keys()), list(self.table.values())) if y is True ][0] except Exception as e: print(str(e)) self.error.showMessage('Select data type') rawini = ini.InputHandler( name='rawinfo', tablename= self.tablename, lnedentry= hlp.extract(self.obslned, available), checks=self.obsckbox) self.facade.input_register(rawini) self.facade.create_log_record(self.tablename) self._log = self.facade._tablelog[self.tablename] try: self.rawdirector = self.facade.make_table('rawinfo') print('obs table build: ', self.rawdirector) assert self.rawdirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Column(s) not identified') raise AttributeError( 'Column(s) not identified: ' + str(e)) self.obstable = self.rawdirector._availdf.copy() self.obsmodel = self.viewEdit( self.obstable) if sender is self.btnPreview: self.preview.tabviewPreview.setModel(self.obsmodel) self.preview.show() elif sender is self.btnSaveClose: self.facade.push_tables[self.tablename] = self.obstable hlp.write_column_to_log( self.obslned, self._log, self.tablename) self.close()
def submit_change(self): ''' Method to get data from user form and make project table to upload ''' sender = self.sender() self.form_entries = OrderedDict( (('samplingunits', self.dtype(self.lnedDatatypeunits.text() != '', self.lnedDatatypeunits.text(), None)), ('datatype', self.dtype(self.cboxDatatype.currentText() != '', self.cboxDatatype.currentText(), None)), ('structured_type_1', self.structure( self.ckStructure1.isChecked(), self.lnedStructure1.text(), self.lnedStructureunits1.text())), ('structured_type_2', self.structure(self.ckStructure2.isChecked(), self.lnedStructure2.text(), self.lnedStructureunits2.text())), ('structured_type_3', self.structure(self.ckStructure3.isChecked(), self.lnedStructure3.text(), self.lnedStructureunits3.text())), ('structured_type_4', self.structure(self.ckStructure4.isChecked(), self.lnedStructure4.text(), self.lnedStructureunits4.text())), ('samplefreq', self.sampfreq(self.cboxSamplingfrequency.currentText() != 'NULL', self.cboxSamplingfrequency.currentText(), None)), ('studytype', self.studytype(self.cboxStudytype.currentText() != 'NULL', self.cboxStudytype.currentText(), None)), ('community', self.community( True, ('yes' if self.rbtnCommunityyes.isChecked() is True else 'no'), None)), ('spatial_replication_level_1_extent', self.ext(self.ckSpatialextent1.isChecked(), self.lnedSpatialextent1.text(), self.lnedSpatialextentunits1.text())), ('spatial_replication_level_2_extent', self.ext(self.ckSpatialextent2.isChecked(), self.lnedSpatialextent2.text(), self.lnedSpatialextentunits2.text())), ('spatial_replication_level_3_extent', self.ext(self.ckSpatialextent3.isChecked(), self.lnedSpatialextent3.text(), self.lnedSpatialextentunits3.text())), ('spatial_replication_level_4_extent', self.ext(self.ckSpatialextent4.isChecked(), self.lnedSpatialextent4.text(), self.lnedSpatialextentunits4.text())), ('spatial_replication_level_5_extent', self.ext(self.ckSpatialextent5.isChecked(), self.lnedSpatialextent5.text(), self.lnedSpatialextentunits5.text())), ('treatment_type_1', self.treatments(self.cboxTreatment1.currentText() != 'NULL', self.cboxTreatment1.currentText(), None)), ('treatment_type_2', self.treatments(self.cboxTreatment2.currentText() != 'NULL', self.cboxTreatment2.currentText(), None)), ('treatment_type_3', self.treatments(self.cboxTreatment3.currentText() != 'NULL', self.cboxTreatment3.currentText(), None)), ('control_group', self.treatments( self.ckControlgroup.isChecked(), self.lnedControlgroup.text(), None)), ('derived', self.derived(self.cboxDerived.currentText() != 'NULL', self.cboxDerived.currentText(), None)), ('authors', self.contacts(self.lnedAuthor.text() != '', self.lnedAuthor.text(), None)), ('authors_contact', self.contacts(self.lnedContact.text() != '', self.lnedContact.text(), None)))) self.mainini = ini.InputHandler(name='maininfo', tablename='project_table', lnedentry=self.form_entries) self.facade.input_register(self.mainini) try: self.maindirector = self.facade.make_table('maininfo') except Exception as e: print(str(e)) self.error.showMessage(str(e)) self.facade.create_log_record('project_table') self._log = self.facade._tablelog['project_table'] self.project_table = self.maindirector._availdf.copy() try: check_list = [ 'authors', 'authors_contact', 'studytype', 'derived', 'community', 'samplefreq', 'datatype' ] record = None for i, item in enumerate(check_list): print(item, ': ', self.form_entries[item].entry) record = item assert (self.form_entries[item].entry != 'NULL') is True assert (self.form_entries[item].entry != '') is True if sender is self.btnPreview: self.mainmodel = self.viewEdit(self.project_table) self.preview.tabviewPreview.setModel(self.mainmodel) self.preview.show() return else: pass self.facade.push_tables['project_table'] = self.project_table self._log.debug( 'project_table mod: ' + ' '.join(self.project_table.columns.values.tolist())) orm.convert_types(self.project_table, orm.project_types) hlp.write_column_to_log(self.form_entries, self._log, 'project_table') self.close() except Exception as e: print(str(e)) self.error.showMessage('Invalid entry: ' + record)
def submit_change(self): sender = self.sender() self.obslned = OrderedDict( (('spatial_replication_level_2', self.lnedRep2.text()), ('spatial_replication_level_3', self.lnedRep3.text()), ('spatial_replication_level_4', self.lnedRep4.text()), ('spatial_replication_level_5', self.lnedRep5.text()), ('structure_type_1', self.lnedStructure1.text()), ('structure_type_2', self.lnedStructure2.text()), ('structure_type_3', self.lnedStructure3.text()), ('structure_type_4', self.lnedStructure4.text()), ('treatment_type_1', self.lnedTreatment1.text()), ('treatment_type_2', self.lnedTreatment2.text()), ('treatment_type_3', self.lnedTreatment3.text()), ('unitobs', self.lnedRaw.text()))) self.obsckbox = OrderedDict( (('spatial_replication_level_2', self.ckRep2.isChecked()), ('spatial_replication_level_3', self.ckRep3.isChecked()), ('spatial_replication_level_4', self.ckRep4.isChecked()), ('spatial_replication_level_5', self.ckRep5.isChecked()), ('structure_type_1', self.ckStructure1.isChecked()), ('structure_type_2', self.ckStructure2.isChecked()), ('structure_type_3', self.ckStructure3.isChecked()), ('structure_type_4', self.ckStructure4.isChecked()), ('treatment_type_1', self.ckTreatment1.isChecked()), ('treatment_type_2', self.ckTreatment2.isChecked()), ('treatment_type_3', self.ckTreatment3.isChecked()), ('unitobs', True))) self.table = { 'count_table': self.rbtnCount.isChecked(), 'biomass_table': self.rbtnBiomass.isChecked(), 'density_table': self.rbtnDensity.isChecked(), 'percent_cover_table': self.rbtnPercentcover.isChecked(), 'individual_table': self.rbtnIndividual.isChecked() } available = [ x for x, y in zip(list(self.obslned.keys()), list(self.obsckbox.values())) if y is True ] try: self.tablename = [ x for x, y in zip(list(self.table.keys()), list(self.table.values())) if y is True ][0] except Exception as e: print(str(e)) self.error.showMessage('Select data type') rawini = ini.InputHandler(name='rawinfo', tablename=self.tablename, lnedentry=hlp.extract( self.obslned, available), checks=self.obsckbox) self.facade.input_register(rawini) self.facade.create_log_record(self.tablename) self._log = self.facade._tablelog[self.tablename] try: self.rawdirector = self.facade.make_table('rawinfo') print('obs table build: ', self.rawdirector) assert self.rawdirector._availdf is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage('Column(s) not identified') raise AttributeError('Column(s) not identified: ' + str(e)) self.obstable = self.rawdirector._availdf.copy() self.obsmodel = self.viewEdit(self.obstable) if sender is self.btnPreview: self.preview.tabviewPreview.setModel(self.obsmodel) self.preview.show() elif sender is self.btnSaveClose: self.facade.push_tables[self.tablename] = self.obstable hlp.write_column_to_log(self.obslned, self._log, self.tablename) self.close()
def submit_change(self): sender = self.sender() self.timelned = { 'dayname': self.lnedDay.text(), 'dayform': self.cboxDay.currentText(), 'monthname': self.lnedMonth.text(), 'monthform': self.cboxMonth.currentText(), 'yearname': self.lnedYear.text(), 'yearform': self.cboxYear.currentText(), 'jd': self.ckJulian.isChecked(), 'hms': self.ckMonthSpelling.isChecked() } print('dict: ', self.timelned) for i, item in enumerate(self.timelned.values()): print('dict values: ', list(self.timelned.keys())[i], item) # Input handler self.timeini = ini.InputHandler( name='timeinfo', tablename='timetable', lnedentry=self.timelned) self.facade.input_register(self.timeini) # Initiating time parser class self.timetable = tmpa.TimeParse( self.facade._data, self.timelned) # Logger self.facade.create_log_record('timetable') self._log = self.facade._tablelog['timetable'] try: # Calling formater method timeview = self.timetable.formater().copy() timeview_og_col = timeview.columns.values.tolist() timeview.columns = [ x+'_derived' for x in timeview_og_col ] timeview = concat( [timeview, self.facade._data], axis=1) except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Could not format dates - ' + 'Check entries for errors' ) raise ValueError( 'Could not format dates - ' + 'Check entries for errors') self.facade._valueregister['sitelevels'] if sender is self.btnPreview: timeview = timeview.applymap(str) self.timemodel = self.viewEdit(timeview) self.preview.tabviewPreview.setModel(self.timemodel) self.preview.show() elif sender is self.btnSaveClose: hlp.write_column_to_log( self.timelned, self._log, 'timetable' ) try: timeview.loc[1, 'day_derived'] = to_numeric( timeview['day_derived']) timeview['month_derived'] = to_numeric( timeview['month_derived']) timeview['year_derived'] = to_numeric( timeview['year_derived']) except Exception as e: print(str(e)) pass try: self.facade.push_tables['timetable'] = ( timeview) except Exception as e: print(str(e)) print('save block: ', timeview.columns) print('save block: ', timeview) try: assert timeview is not None except Exception as e: print(str(e)) self._log.debug(str(e)) self.error.showMessage( 'Could not convert data to integers') raise TypeError( 'Could not convert data to integers') self.close()