def loadFileDialog(self): doLoad = False if self.unsavedContent: reply = QMessageBox.question(self, "Warning", "There are unsaved changes. Do you want to save them?", QMessageBox.Yes|QMessageBox.No|QMessageBox.Abort, QMessageBox.NoButton) if reply == QMessageBox.Yes: self.saveFile() doLoad = not self.unsavedContent elif reply == QMessageBox.No: self.closeConfiguration() doLoad = True else: doLoad = True if doLoad: filename = QFileDialog.getOpenFileName(self, 'Open configuration file', self.FilePath(self.lastFile)) if filename[0]: self.closeConfiguration() file = QFile(filename[0]) file.open(QIODevice.ReadOnly | QIODevice.Text) currentPluginTmp = False for item in self.pluginContainer: file.seek(0) if item[0].checkMagic(file): currentPluginTmp = item break file.close() if currentPluginTmp == False: QMessageBox.critical(self, "Error", 'Error: Selected file does not seem to fit to any installed plugin. Check the "checkMagic" method inside the "__init__.py" file of the desired plugins folder.', QMessageBox.Ok, QMessageBox.NoButton) else: self.currentPlugin = currentPluginTmp if self.loadPluginModel(): self.fileHandler.fileName = filename[0] self.lastFile = self.fileHandler.fileName self.activeModel.beginResetModel() importLog, importError = self.fileHandler.readFile(self.activeModel, self.completeModel, self.currentPlugin) importanceError = False if not importError: importanceLog, importanceError = self.activeModel.checkImportance(self.completeModel) for logItem in importanceLog: importLog.append(logItem) self.activeModel.endResetModel() if importanceError or importError: self.closeConfiguration() else: self.actionSave_Configuration.setEnabled(True) self.actionSave_Configuration_File_As.setEnabled(True) self.button_add.setEnabled(True) self.label.setText("Select a setting to edit it.") self.windowIndicator() self.expandTree() if len(importLog) != 0: importLogWindow = ImportLog(importLog, importError, filename[0], self) importLogWindow.exec() else: QMessageBox.critical(self, "Error", "Error: Selected file can't be read.", QMessageBox.Ok, QMessageBox.NoButton) self.closeConfiguration()
def decodePack2Txt(in1, out1, dem='\t'): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly) is False: return OTdic = {} for it in otypedic: if str(otypedic[it]) not in OTdic: OTdic[str(otypedic[it])] = it dsoIn.seek(0) dsoInStream = QDataStream(dsoIn) dsoInStream.setVersion(QDataStream.Qt_5_2) print(dsoInStream.readQString()) print(dsoInStream.readQString()) lines = [] while dsoIn.atEnd() is False: id = dsoInStream.readInt() raRad = dsoInStream.readFloat() decRad = dsoInStream.readFloat() bMag = dsoInStream.readFloat() vMag = dsoInStream.readFloat() nType = dsoInStream.readInt() mType = dsoInStream.readQString() majorAxisSize = dsoInStream.readFloat() minorAxisSize = dsoInStream.readFloat() orientationAngle = dsoInStream.readInt() z = dsoInStream.readFloat() zErr = dsoInStream.readFloat() plx = dsoInStream.readFloat() plxErr = dsoInStream.readFloat() dist = dsoInStream.readFloat() distErr = dsoInStream.readFloat() NGC = dsoInStream.readInt() IC = dsoInStream.readInt() M = dsoInStream.readInt() C = dsoInStream.readInt() B = dsoInStream.readInt() Sh2 = dsoInStream.readInt() VdB = dsoInStream.readInt() RCW = dsoInStream.readInt() LDN = dsoInStream.readInt() LBN = dsoInStream.readInt() Cr = dsoInStream.readInt() Mel = dsoInStream.readInt() PGC = dsoInStream.readInt() UGC = dsoInStream.readInt() Ced = dsoInStream.readQString() Arp = dsoInStream.readInt() VV = dsoInStream.readInt() PK = dsoInStream.readQString() PNG = dsoInStream.readQString() SNRG = dsoInStream.readQString() ACO = dsoInStream.readQString() HCG = dsoInStream.readQString() ESO = dsoInStream.readQString() VdBH = dsoInStream.readQString() DWB = dsoInStream.readInt() Tr = dsoInStream.readInt() St = dsoInStream.readInt() Ru = dsoInStream.readInt() VdBHa = dsoInStream.readInt() ra = float(raRad * 180 / math.pi) dec = float(decRad * 180 / math.pi) majorAxisSize *= 60 minorAxisSize *= 60 if str(nType) in OTdic: oType = OTdic[str(nType)] lis = [ id, ra, dec, bMag, vMag, oType, mType, majorAxisSize, minorAxisSize, orientationAngle, z, zErr, plx, plxErr, dist, distErr, NGC, IC, M, C, B, Sh2, VdB, RCW, LDN, LBN, Cr, Mel, PGC, UGC, Ced, Arp, VV, PK, PNG, SNRG, ACO, HCG, ESO, VdBH, DWB, Tr, St, Ru, VdBHa ] lis = list(str(x) for x in lis) lines.append(dem.join(lis)) writealllines(lines, out1)
def ConverttxtToPack(in1,out1): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly | QIODevice.Text) is False: return dsoOut=QFile(out1) if dsoOut.open(QIODevice.WriteOnly) is False: return totalRecords = 0 while (dsoIn.atEnd() is False): dsoIn.readLine() totalRecords+=1 dsoIn.seek(0) dsoOutStream = QDataStream(dsoOut) dsoOutStream.setVersion(QDataStream.Qt_5_2) readOk = 0 dsoOutStream.writeQString('3.11') dsoOutStream.writeQString('standard') while (dsoIn.atEnd() is False): record = str(dsoIn.readLine(), encoding='utf-8') vp = re.match("ersion\s+([\d\.]+)\s+(\w+)",record) if (record.startswith("//") or record.startswith("#")): totalRecords-=1 continue lis=record.split('\t') try: # if 1: id = int(lis[0]) ra = float((lis[1]).strip()) dec = float((lis[2]).strip()) bMag = float(lis[3]) vMag = float(lis[4]) oType = (lis[5]).strip() mType = (lis[6]).strip() majorAxisSize = float(lis[7]) minorAxisSize = float(lis[8]) orientationAngle = int(float(lis[9])) z = float(lis[10]) zErr = float(lis[11]) plx = float(lis[12]) plxErr = float(lis[13]) dist = float(lis[14]) distErr = float(lis[15]) NGC = int(lis[16]) IC = int(lis[17]) M = int(lis[18]) C = int(lis[19]) B = int(lis[20]) Sh2 = int(lis[21]) VdB = int(lis[22]) RCW = int(lis[23]) LDN = int(lis[24]) LBN = int(lis[25]) Cr = int(lis[26]) Mel = int(lis[27]) PGC = int(lis[28]) UGC = int(lis[29]) Ced = (lis[30]).strip() Arp = int(lis[31]) VV = int(lis[32]) PK = (lis[33]).strip() PNG = (lis[34]).strip() SNRG = (lis[35]).strip() ACO = (lis[36]).strip() HCG = (lis[37]).strip() ESO = (lis[38]).strip() VdBH = (lis[39]).strip() DWB = int(lis[40]) Tr = int(lis[41]) St = int(lis[42]) Ru = int(lis[43]) VdBHa = int(lis[44]) raRad = float(ra) * math.pi / 180 decRad = float(dec) * math.pi / 180 majorAxisSize /= 60 minorAxisSize /= 60 if (bMag <= 0): bMag = 99 if (vMag <= 0): vMag = 99 if oType.upper() in otypedic: nType = otypedic[oType.upper()] else: nType = 36 readOk += 1 dsoOutStream.writeInt(id) dsoOutStream.writeFloat(ra/180*math.pi) dsoOutStream.writeFloat(dec/180*math.pi) dsoOutStream.writeFloat(bMag) dsoOutStream.writeFloat(vMag) dsoOutStream.writeInt(nType) # dsoOutStream.writeUInt64(nType) dsoOutStream.writeQString(mType) dsoOutStream.writeFloat(majorAxisSize) dsoOutStream.writeFloat(minorAxisSize) dsoOutStream.writeInt(orientationAngle) dsoOutStream.writeFloat(z) dsoOutStream.writeFloat(zErr) dsoOutStream.writeFloat(plx) dsoOutStream.writeFloat(plxErr) dsoOutStream.writeFloat(dist) dsoOutStream.writeFloat(distErr) dsoOutStream.writeInt(NGC) dsoOutStream.writeInt(IC) dsoOutStream.writeInt(M) dsoOutStream.writeInt(C) dsoOutStream.writeInt(B) dsoOutStream.writeInt(Sh2) dsoOutStream.writeInt(VdB) dsoOutStream.writeInt(RCW) dsoOutStream.writeInt(LDN) dsoOutStream.writeInt(LBN) dsoOutStream.writeInt(Cr) dsoOutStream.writeInt(Mel) dsoOutStream.writeInt(PGC) dsoOutStream.writeInt(UGC) dsoOutStream.writeQString(Ced) dsoOutStream.writeInt(Arp) dsoOutStream.writeInt(VV) dsoOutStream.writeQString(PK) dsoOutStream.writeQString(PNG) dsoOutStream.writeQString(SNRG) dsoOutStream.writeQString(ACO) dsoOutStream.writeQString(HCG) dsoOutStream.writeQString(ESO) dsoOutStream.writeQString(VdBH) dsoOutStream.writeInt(DWB) dsoOutStream.writeInt(Tr) dsoOutStream.writeInt(St) dsoOutStream.writeInt(Ru) dsoOutStream.writeInt(VdBHa) except: print(record) continue dsoIn.close() dsoOut.flush() dsoOut.close() return
def ConverttxtToPack(in1, out1, default_ver='3.13', default_type='standard'): dsoIn = QFile(in1) if dsoIn.open(QIODevice.ReadOnly | QIODevice.Text) is False: return dsoOut = QFile(out1) if dsoOut.open(QIODevice.WriteOnly) is False: return totalRecords = 0 while (dsoIn.atEnd() is False): dsoIn.readLine() totalRecords += 1 dsoIn.seek(0) dsoOutStream = QDataStream(dsoOut) dsoOutStream.setVersion(QDataStream.Qt_5_2) readOk = 0 addedHead = False while (dsoIn.atEnd() is False): record = str(dsoIn.readLine(), encoding='utf-8') vp = re.match("^.*ersion\s+([\d\.]+)\s+(\w+)", record) if vp: print(vp.group(1), vp.group(2)) dsoOutStream.writeQString(vp.group(1)) dsoOutStream.writeQString(vp.group(2)) addedHead = True if (record.startswith("//") or record.startswith("#")): totalRecords -= 1 continue # write when could not get label from txt if not addedHead: dsoOutStream.writeQString(default_ver) dsoOutStream.writeQString(default_type) addedHead = True lis = record.split('\t') if 1: id = int(lis[0] if lis[0] != "" else 0) ra = float((lis[1]).strip()) dec = float((lis[2]).strip()) bMag = float(lis[3]) vMag = float(lis[4]) oType = (lis[5]).strip() # mType = (lis[6]).strip() # majorAxisSize = float(lis[7]) minorAxisSize = float(lis[8]) orientationAngle = int(float(lis[9]) if float(lis[9]) != "" else 0) z = float(lis[10]) zErr = float(lis[11]) plx = float(lis[12]) plxErr = float(lis[13]) dist = float(lis[14]) distErr = float(lis[15]) NGC = int(lis[16] if lis[16] != "" else 0) IC = int(lis[17] if lis[17] != "" else 0) M = int(lis[18] if lis[18] != "" else 0) C = int(lis[19] if lis[19] != "" else 0) B = int(lis[20] if lis[20] != "" else 0) Sh2 = int(lis[21] if lis[21] != "" else 0) VdB = int(lis[22] if lis[22] != "" else 0) RCW = int(lis[23] if lis[23] != "" else 0) LDN = int(lis[24] if lis[24] != "" else 0) LBN = int(lis[25] if lis[25] != "" else 0) Cr = int(lis[26] if lis[26] != "" else 0) Mel = int(lis[27] if lis[27] != "" else 0) PGC = int(lis[28] if lis[28] != "" else 0) UGC = int(lis[29] if lis[29] != "" else 0) Ced = (lis[30]).strip() # Arp = int(lis[31] if lis[31] != "" else 0) VV = int(lis[32] if lis[32] != "" else 0) PK = (lis[33]).strip() # PNG = (lis[34]).strip() # SNRG = (lis[35]).strip() # ACO = (lis[36]).strip() # HCG = (lis[37]).strip() # ESO = (lis[38]).strip() # VdBH = (lis[39]).strip() # DWB = int(lis[40] if lis[40] != "" else 0) Tr = int(lis[41] if lis[41] != "" else 0) St = int(lis[42] if lis[42] != "" else 0) Ru = int(lis[43] if lis[43] != "" else 0) VdBHa = int(lis[44] if lis[44] != "" else 0) raRad = float(ra) * math.pi / 180 decRad = float(dec) * math.pi / 180 majorAxisSize /= 60 minorAxisSize /= 60 if (bMag <= 0): bMag = 99 if (vMag <= 0): vMag = 99 if oType.upper() in otypedic: nType = otypedic[oType.upper()] else: nType = 36 readOk += 1 dsoOutStream.writeInt(id) dsoOutStream.writeFloat(raRad) dsoOutStream.writeFloat(decRad) dsoOutStream.writeFloat(bMag) dsoOutStream.writeFloat(vMag) dsoOutStream.writeInt(nType) dsoOutStream.writeQString(mType) dsoOutStream.writeFloat(majorAxisSize) dsoOutStream.writeFloat(minorAxisSize) dsoOutStream.writeInt(orientationAngle) dsoOutStream.writeFloat(z) dsoOutStream.writeFloat(zErr) dsoOutStream.writeFloat(plx) dsoOutStream.writeFloat(plxErr) dsoOutStream.writeFloat(dist) dsoOutStream.writeFloat(distErr) dsoOutStream.writeInt(NGC) dsoOutStream.writeInt(IC) dsoOutStream.writeInt(M) dsoOutStream.writeInt(C) dsoOutStream.writeInt(B) dsoOutStream.writeInt(Sh2) dsoOutStream.writeInt(VdB) dsoOutStream.writeInt(RCW) dsoOutStream.writeInt(LDN) dsoOutStream.writeInt(LBN) dsoOutStream.writeInt(Cr) dsoOutStream.writeInt(Mel) dsoOutStream.writeInt(PGC) dsoOutStream.writeInt(UGC) dsoOutStream.writeQString(Ced) dsoOutStream.writeInt(Arp) dsoOutStream.writeInt(VV) dsoOutStream.writeQString(PK) dsoOutStream.writeQString(PNG) dsoOutStream.writeQString(SNRG) dsoOutStream.writeQString(ACO) dsoOutStream.writeQString(HCG) dsoOutStream.writeQString(ESO) dsoOutStream.writeQString(VdBH) dsoOutStream.writeInt(DWB) dsoOutStream.writeInt(Tr) dsoOutStream.writeInt(St) dsoOutStream.writeInt(Ru) dsoOutStream.writeInt(VdBHa) dsoIn.close() dsoOut.flush() dsoOut.close() return