def loadAFile(self, fileName, filter): if filter.find("CuraSettingsInjector") >= 0: curaData = loadGCodeInjected(fileName) else: if filter.find("Cura gcode settings") >= 0 : curaData = loadGCodeSettings_3(fileName) else: zf = zipfile.ZipFile(fileName) # open as zip archive ziplist = zf.infolist() #self.aFileSections = set() curaData = CuraData() for info in ziplist: # curaprofile contains 2 files datastr = "".join(chr(x) for x in zf.read(info.filename)) # binary to string curaData.set(datastr) self.CuradataA = curaData # parse into CuraData class self.labelFileNameA.setText(fileName) # display curaprofile file name self.labelFileNameA.setToolTip(fileName) # display curaprofile file name self.showData() self.pushButtonReloadA.setEnabled(True) # enable reload button self.pushButtonLoadB.setEnabled(True) # enable loading for B file
def loadGCodeSettings_3(fileName): # ;SETTING_3 data = CuraData() data.sections['general'] = {} data.sections['metadata'] = {} data.sections["values"] = {} with open(fileName) as file: line = file.readline() while line.find(';SETTING_3') == -1: line = file.readline() if len(line) == 0: return data jsonstr = '' while len(line) > 0: if line.find(';SETTING_3') != 0: break jsonstr = jsonstr + line[len(';SETTING_3 '):].strip() line = file.readline() #jsonstr = jsonstr.replace('\\\\n', '\\\n') #print(jsonstr) jsondata = json.loads(jsonstr) print(json.dumps(jsondata, indent=4)) for key, val in jsondata.items(): if isinstance(val, list): for v in val: v1 = v.replace('\\n', '\n') v2 = v1.replace('\\', '') data.set(v2) else: v = val.replace('\\n', '\n') v1 = v.replace('\\', '') data.set(v) print(data) return data
def loadBFile(self, fileName, filter): if filter.find("CuraSettingsInjector") >= 0: curaData = loadGCodeInjected(fileName) else: if filter.find("Cura gcode settings") >= 0 : curaData = loadGCodeSettings_3(fileName) else: zf = zipfile.ZipFile(fileName) ziplist = zf.infolist() self.CuradataB = CuraData() #self.bFileSections = set() # curaData = CuraData() for info in ziplist: datastr = "".join(chr(x) for x in zf.read(info.filename)) curaData.set(datastr) self.CuradataB = curaData self.labelFileNameB.setText(fileName) self.labelFileNameB.setToolTip(fileName) self.showData() self.pushButtonReloadB.setEnabled(True) # enable reload button