def on_numorHelpBtn_clicked(self): QMessageBox.information( self, 'Numor Help', '''\ The numor string contains file numbers, with the following operators: , loads multiple files - loads multiple sequential files + merges multiple files > merges multiple sequential files For example: * 10-15,23 loads files 10 through 15 and 23 in 7 separate datasets. * 10+11,23+24 loads two datasets consisting of files 10 and 11 merged \ into one set, as well as files 23 and 24. * 10>15+23 merges files 10 through 15 and 23 into one single dataset. * 10,11,12+13,14 loads four sets. ''')
def do_fit(self): if self.picking: QMessageBox.information(self, 'Fitting', 'Please finish the picking operation first.') return self.update_from_controls() self.statusLabel.setText('Working...') self.statusLabel.repaint() QApplication.processEvents() try: res = self.model.fit(self.data, **self.fit_kws) except Exception as e: self.logger.exception('Error during fit') self.statusLabel.setText('Error during fit: %s' % e) return self.on_modelFitted(self.item, res) self.replotRequest.emit(True) session.set_dirty()
def eval_model(self, final=False): modeldef = str(self.modeldefEdit.toPlainText()).replace('\n', ' ') if not modeldef: QMessageBox.information(self, 'Error', 'No model defined.') return try: model = eval_model(modeldef) except Exception as e: self.logger.exception('Could not evaluate model') QMessageBox.information(self, 'Error', 'Could not evaluate model: %s' % e) return if final: self._finish_picking() self.last_model = model self.newModel.emit(model, False, True) self.closeRequest.emit() else: self.statusLbl.setText('Model definition is good.')
def exec_callback(self): try: from ufit.gui.console import ConsoleWindow except ImportError: logger.exception('Qt console window cannot be opened without ' 'IPython; import error was:') QMessageBox.information( self, 'ufit', 'Please install IPython with qtconsole to ' 'activate this function.') return w = ConsoleWindow(self) w.ipython.executeCommand('from ufit.lab import *') w.ipython.pushVariables({ 'fig': self.canvas.figure, 'ax': self.canvas.figure.gca(), 'D': [item for group in session.groups for item in group.items], }) w.show()
def set_template(self, dtempl, numor, silent=True): self.templateEdit.setText(str_to_path(dtempl)) with self.sgroup as settings: settings.setValue('last_data_template', dtempl) self.loader.template = dtempl try: cols, xguess, yguess, dyguess, mguess, nmon = \ self.loader.guess_cols(numor) except Exception as e: if not silent: self.logger.exception('Could not read column names') QMessageBox.information(self, 'Error', 'Could not read column names: %s' % e) return self.xcolBox.clear() self.xcolBox.addItem('auto') self.xcolBox.setCurrentIndex(0) self.ycolBox.clear() self.ycolBox.addItem('auto') self.ycolBox.setCurrentIndex(0) self.dycolBox.clear() self.dycolBox.addItem('auto') self.dycolBox.addItem('sqrt(Y)') self.dycolBox.setCurrentIndex(0) self.moncolBox.clear() self.moncolBox.addItem('auto') self.moncolBox.addItem('none') self.moncolBox.setCurrentIndex(0) self.filtercolBox.clear() self.filtercolBox.addItem('none') self.filtercolBox.setCurrentIndex(0) for i, name in enumerate(cols): self.xcolBox.addItem(name) self.ycolBox.addItem(name) self.dycolBox.addItem(name) self.moncolBox.addItem(name) self.filtercolBox.addItem(name) self.monscaleEdit.setText(str(nmon or 1)) self.numorsEdit.setText(str(numor)) self.open_data()
def open_data(self, final=False): try: prec = float(self.precisionEdit.text()) except ValueError: QMessageBox.information(self, 'Error', 'Enter a valid precision.') return floatmerge = self.rbFloatMerge.isChecked() xcol = str(self.xcolBox.currentText()) ycol = str(self.ycolBox.currentText()) dycol = str(self.dycolBox.currentText()) mcol = str(self.moncolBox.currentText()) fcol = str(self.filtercolBox.currentText()) if mcol == 'none': mcol = None if dycol == 'sqrt(Y)': dycol = None try: mscale = int(self.monscaleEdit.text()) except Exception: QMessageBox.information(self, 'Error', 'Monitor scale must be integer.') return if fcol == 'none': filter = None else: try: val = float(self.filtervalEdit.text()) except ValueError: val = bytes(self.filtervalEdit.text(), 'utf-8') filter = {fcol: val} dtempl = path_to_str(self.templateEdit.text()) self.loader.template = dtempl numors = str(self.numorsEdit.text()) try: datas = self.loader.load_numors(numors, prec, xcol, ycol, dycol, mcol, mscale, floatmerge, filter) except Exception as e: self.logger.exception('Error while loading data file') QMessageBox.information(self, 'Error', str(e)) return self.last_data = datas if final: self.newDatas.emit(datas, self.groupBox.currentText()) self.closeRequest.emit() else: self.plot()
def export_python(self, filename): QMessageBox.information(self, 'Error', 'Cannot export Python from a ' 'mapping.')
def export_fits(self, filename): QMessageBox.information(self, 'Error', 'Cannot export fits from a ' 'mapping.')
def export_fits(self, filename): QMessageBox.information(self, 'Error', 'Cannot export fits from an ' 'image.')
def export_python(self, filename): QMessageBox.information(self, 'Error', 'Cannot export Python from an ' 'image.')