コード例 #1
0
ファイル: SpreadsheetData.py プロジェクト: kaiserpeng/PyFoam
 def testSpreadsheetReadFileTest(self):
     fName = mktemp()
     open(fName, "wb").write(filecontent)
     sp = SpreadsheetData(txtName=fName)
     self.assertEqual(len(sp.names()), 4)
     self.assertEqual(sp.size(), 5)
     self.assertEqual(sp.tRange(), (0.005, 0.025))
     self.assertEqual(sp.names()[1], "Initial")
コード例 #2
0
ファイル: SpreadsheetData.py プロジェクト: floli/tools
 def testSpreadsheetReadFileTest(self):
     fName="/tmp/testdata"
     open(fName,"w").write(filecontent)
     sp=SpreadsheetData(txtName=fName)
     self.assertEqual(len(sp.names()),4)
     self.assertEqual(sp.size(),5)
     self.assertEqual(sp.tRange(),(0.005,0.025))
     self.assertEqual(sp.names()[1],"Initial")
コード例 #3
0
class ReplayDataFileAnalyzer(GeneralLineAnalyzer):
    """Reads Data into a SpreadsheetData-object and then every time a
    new time value comes up returns the data from that file"""

    def __init__(self,
                 timeName=None,
                 validData=None,
                 validMatchRegexp=False,
                 csvName=None,
                 txtName=None,
                 excelName=None,
                 namePrefix=None,
                 skip_header=0,
                 stripCharacters=None,
                 progressTemplate=None,
                 replaceFirstLine=None,
                 startTime=None,
                 endTime=None):
        self.__data=SpreadsheetData(timeName=timeName,
                                    validData=validData,
                                    validMatchRegexp=validMatchRegexp,
                                    csvName=csvName,
                                    txtName=txtName,
                                    excelName=excelName,
                                    skip_header=skip_header,
                                    stripCharacters=stripCharacters,
                                    replaceFirstLine=replaceFirstLine)
        self.namePrefix=namePrefix
        GeneralLineAnalyzer.__init__(self,
                                     titles=[self.makeName(n) for n in self.__data.names(withTime=False)],
                                     doTimelines=True,
                                     doFiles=False,
                                     progressTemplate=progressTemplate,
                                     startTime=startTime,
                                     endTime=endTime)
        self.timeNew=False
        self.tRange=self.__data.tRange()

    def makeName(self,name):
        if self.namePrefix is None:
            return name
        else:
            return self.namePrefix+name

    def timeChanged(self):
        time=float(self.getTime())
        if time<self.tRange[0] or time>self.tRange[1]:
            return
        self.timeNew=True
        self.lines.setTime(time)

    def doMatch(self,line):
        if self.timeNew:
            time=float(self.getTime())
            if time<self.tRange[0] or time>self.tRange[1]:
                return None
            data=self.__data(time,invalidExtend=True)
            self.timeNew=False
            return {self.makeName(k):v for k,v in data.items()}
        else:
            return None

    def addToTimelines(self,data):
        for t in self.titles:
            self.lines.setValue(self.fName(t),data[t])

    def processProgressTemplate(self,data):
        ldata={k[len(self.namePrefix):]:data[k] for k in data}
        myProgress=self.progressTemplate.format(**ldata)
        return myProgress