Beispiel #1
0
	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()
Beispiel #2
0
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
Beispiel #4
0
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