def load(self, TSV, name): self._name = name safeName = TSVHelper.makeLineNameSafe(name) TSV.selectLine(safeName) self._F_group = TSV.readString() self._B_group = TSV.readString() self._alpha = TSV.readDouble()
def load(self, TSV, name): self._name = name safeName = TSVHelper.makeLineNameSafe(name) TSV.selectLine(safeName) num = TSV.readInt() self._dets = [] for k in range(num): self._dets.append(TSV.readInt())
def test_writeLine(self): badName = "bad name_example-here" TSV = MantidQt.API.TSVSerialiser() pythonTSV.writeLine(TSV, badName) pi = 3.14159 TSV.storeDouble(pi) load = load_TSV(TSV) safeName = pythonTSV.makeLineNameSafe(badName) load.selectLine(safeName) self.assertEquals(pi, load.readDouble())
def saveCustom(self, TSV0, key, value): tmpTSV = MantidQt.API.TSVSerialiser() tmpTSV.writeLine("members") tmpTSV.storeInt(len(value)) # store all of the names/keys on one line for obj in value: tmpTSV.storeString(obj.name) # the below method writes a new line for obj in value: obj.save(tmpTSV) safeKey = TSVHelper.makeLineNameSafe(key) TSV0.writeSection(safeKey, tmpTSV.outputLines())
def customLoad(self, load, key, value): safeKey = TSVHelper.makeLineNameSafe(key) sec = load.sections(safeKey) tmpTSV = MantidQt.API.TSVSerialiser(sec[0]) tmpTSV.selectLine("members") num = tmpTSV.readInt() names = [] for k in range(num): names.append(tmpTSV.readString()) loaded_values = [] for name in names: loaded_values.append(copy.deepcopy(value[0])) loaded_values[-1].load(tmpTSV, name) self.common_context[key] = loaded_values
def loadFromProject(self, project): full_load = MantidQt.API.TSVSerialiser(project) # get section safeName = TSVHelper.makeLineNameSafe(self._name) secs = full_load.sections(safeName) load = MantidQt.API.TSVSerialiser(secs[0]) load.selectLine("keys") numKeys = load.readInt() keys = [] for k in range(numKeys): tmp = load.readString() keys.append(tmp) for key in keys: value = self.common_context[key] try: self.common_context[ key] = TSVHelper.loadFromTSV(load, key, value) except: self.customLoad(load, key, value) pass
def save(self): # save .... TSVSec = MantidQt.API.TSVSerialiser() TSV0 = MantidQt.API.TSVSerialiser() keys = self.common_context.keys() TSV0.writeLine("keys") TSV0.storeInt(len(keys)) for key in keys: TSV0.storeString(key) for key in keys: TSVHelper.writeLine(TSV0, key) value = self.common_context[key] try: TSVHelper.saveToTSV(TSV0, value) except: try: self.saveCustom(TSV0, key, value) except: pass lines = TSV0.outputLines() safeName = TSVHelper.makeLineNameSafe(self._name) TSVSec.writeSection(safeName, lines) return TSVSec.outputLines()
def test_makeLineNameSafeDashes(self): badName = "dashes-fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName, "DashesFail")
def test_makeLineNameSafeUnderscores(self): badName = "underscores_fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName, "UnderscoresFail")
def test_makeLineNameSafeSpaces(self): badName = "spaces fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName, "SpacesFail")
def test_makeLineNameSafeDashes(self): badName = "dashes-fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName,"DashesFail")
def test_makeLineNameSafeUnderscores(self): badName = "underscores_fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName,"UnderscoresFail")
def test_makeLineNameSafeSpaces(self): badName = "spaces fail" newName = pythonTSV.makeLineNameSafe(badName) self.assertEquals(newName,"SpacesFail")