def main(): config = rc.getUserConfig() splitNames = cate.findAllSplits(config["baseDir"]) names = cate.findNames(splitNames, 0) for game in names: splits_copy = copy(splitNames) cate.restrictCategories(splits_copy, game) categories = cate.findNames(splits_copy, 1) for category in categories: print(game, category) splitArrs = fileio.csvReadStart(config["baseDir"], game, category, []) if len(splitArrs[0]) == 1: continue comparesCsv = splitArrs[1] newCompares = [['To Best Exit', 'Best Exit']] bestExits = DifferenceList.DifferenceList([ findBestExit(i, splitArrs[0]) for i in range(len(comparesCsv) - 1) ]) for i in range(len(comparesCsv) - 1): newCompares.append([ timeh.timeToString(bestExits.segments[i], {"precision": 5}), timeh.timeToString(bestExits.totals[i], {"precision": 5}) ]) insertCsvLines(newCompares, 7, comparesCsv) newCompares = [['Blank Split', 'Blank']] newCompares.extend(['-', '-'] for _ in range(len(comparesCsv) - 1)) insertCsvLines(newCompares, 9, comparesCsv) fileio.writeCSVs(config["baseDir"], game + "tmp", category, None, comparesCsv)
def setTimes(self,time,previous=True): if previous: splitnum = self.state.splitnum - 1 else: splitnum = self.state.splitnum self.info.configure(text=\ timeh.timeToString(\ timeh.difference( time,\ self.state.currentComparison.segments[splitnum]\ ),\ {\ "showSign": True, \ "precision": self.config["precision"],\ "noPrecisionOnMinute": self.config["noPrecisionOnMinute"]\ }\ )\ +" / "\ +timeh.timeToString(\ timeh.difference(\ self.state.currentComparison.segments[splitnum],\ self.state.comparisons[0].segments[splitnum]\ ),\ {\ "precision": self.config["precision"],\ "noPrecisionOnMinute": self.config["noPrecisionOnMinute"]\ }\ )\ ) if previous: self.info.configure(fg=self.setPreviousColour()) else: self.info.configure(fg=self.setCurrentColour())
def getString(self,name,index,options={}): if (name == "segments"): return timeh.timeToString(self.segments[index],options) if (name == "totals"): return timeh.timeToString(self.totals[index],options) if (name == "segmentDiffs"): return timeh.timeToString(self.segmentDiffs[index],options) if (name == "totalDiffs"): return timeh.timeToString(self.totalDiffs[index],options) return timeh.blank()
def setInfo(self, new=False): if new: time = self.state.currentRun.totals[-1] else: time = self.state.comparisons[2].totals[-1] self.info.configure(text=timeh.timeToString( time, {"precision": self.config["precision"]}))
def formatComparison(self,time): return timeh.timeToString(\ time,\ {\ "precision": self.config["main"]["precision"],\ "noPrecisionOnMinute": self.config["main"]["noPrecisionOnMinute"]\ }\ )\
def formatDiff(self,time): return timeh.timeToString(\ time,\ { "showSign": True,\ "precision": self.config["diff"]["precision"],\ "noPrecisionOnMinute": self.config["diff"]["noPrecisionOnMinute"]\ }\ ),\
def setMainTime(self, time): self.main.configure(\ text=timeh.timeToString(\ time,\ {\ "blankToDash": False,\ "precision": self.config["precision"],\ }\ )\ )
def setInfo(self): self.info.configure(text=timeh.timeToString(\ timeh.difference(\ self.state.currentComparison.segments[self.state.splitnum],\ self.state.comparisons[0].segments[self.state.splitnum]\ ),\ {\ "precision": self.config["precision"],\ "noPrecisionOnMinute": self.config["noPrecisionOnMinute"]\ }\ ))
def formatTime(self, time, ttype): if ttype == "main": precision = self.config["mainTimer"]["precision"] else: precision = self.config["segmentTimer"]["precision"] return timeh.timeToString(\ time,\ {\ "blankToDash": False,\ "precision": precision }\ )\
def updateTime(self): if self.shouldHide(): self.hide() return self.info.configure(\ text=\ timeh.timeToString(\ self.state.bptList.total,\ {\ "precision": self.config["precision"]\ }\ )\ )
def setLastComparison(self): if self.state.runEnded: self.rows[-1].setComparison(\ text=\ timeh.timeToString(\ self.state.currentRun.totals[-1],\ {\ "precision": self.config["main"]["precision"],\ "noPrecisionOnMinute": self.config["main"]["noPrecisionOnMinute"]\ }\ )\ ) else: self.rows[-1].setComparison(\ text=\ timeh.timeToString(\ self.state.currentComparison.totals[-1],\ {\ "precision": self.config["main"]["precision"],\ "noPrecisionOnMinute": self.config["main"]["noPrecisionOnMinute"]\ }\ )\ )
def showCurrentSplitDiff(self): self.rows[self.splits.activeIndex].setDiff(\ text=timeh.timeToString(\ timeh.difference(self.state.totalTime,self.state.currentComparison.totals[self.state.splitnum]),\ {\ "showSign": True,\ "precision": self.config["diff"]["precision"],\ "noPrecisionOnMinute": self.config["diff"]["noPrecisionOnMinute"]\ }\ ),\ fg=self.getCurrentDiffColour(\ timeh.difference(self.state.segmentTime,self.state.currentComparison.segments[self.state.splitnum]), \ timeh.difference(self.state.totalTime,self.state.currentComparison.totals[self.state.splitnum])\ )\ )
def setLastDiff(self): if self.state.runEnded: self.rows[-1].setDiff(\ text=\ timeh.timeToString(\ self.state.currentComparison.totalDiffs[-1],\ {\ "showSign": True,\ "precision": self.config["diff"]["precision"],\ "noPrecisionOnMinute": self.config["diff"]["noPrecisionOnMinute"]\ }\ ),\ fg=self.findDiffColour(-1)\ ) else: self.rows[-1].setDiff(text="")
def frameUpdate(self): if self.state.runEnded: return if self.shouldHide(): self.hide() return if not timeh.greater( self.state.comparisons[0].segments[self.state.splitnum], self.state.segmentTime): self.info.configure( text=\ timeh.timeToString(\ timeh.add(\ timeh.difference(self.state.segmentTime,self.state.comparisons[0].segments[self.state.splitnum]),\ self.state.bptList.total ), \ {\ "precision": self.config["precision"]\ }\ )\ )
def addSplit(self): index = self.leftFrame.currentSplit if index < 0: index = len(self.rows) self.leftFrame.addSplit(index) newComparisons = [] for comparison in self.comparisons: comparison.insertNewSegment(index) newComparisons.extend([ '-', timeh.timeToString(comparison.totalBests[index], {"precision": 5}) ]) self.rows.insert( index, EntryRow.EntryRow(self.rightFrame, self, newComparisons)) for i in range(index + 1, len(self.rows)): self.rows[i].pack_forget() for i in range(index, len(self.rows)): self.rows[i].pack(side="top", fill="both") for i in range(len(self.originals)): if self.originals[i] >= index: self.originals[i] = self.originals[i] + 1
def replaceComparison(comparison, startRow, startCol, data_ref, options={}): for i in range(len(comparison.segments)): data_ref[i + startRow][startCol] = timeh.timeToString( comparison.segments[i], options) data_ref[i + startRow][startCol + 1] = timeh.timeToString( comparison.totals[i], options)
def updateTime(self): self.info.configure( text=timeh.timeToString(self.state.currentBests.total, {"precision": self.config["precision"]}))
def updateGoldTime(self): self.goldTime.configure(text=timeh.timeToString( self.state.bestTime, {"precision": self.config["precision"]}))
def replaceSumList(sumList, startRow, startCol, data_ref, options={}): for i in range(len(sumList.bests)): data_ref[i + startRow][startCol] = timeh.timeToString( sumList.bests[i], options) data_ref[i + startRow][startCol + 1] = timeh.timeToString( sumList.totalBests[i], options)
def insertSumList(sumList, startRow, startCol, data_ref, options={}): for i in range(len(sumList.bests)): data_ref[startRow + i].insert( startCol, timeh.timeToString(sumList.totalBests[i], options)) data_ref[startRow + i].insert( startCol, timeh.timeToString(sumList.bests[i], options))
def updateLabel(self, index, time): self.pairs[index][1]["text"] = timeh.timeToString( time, {"precision": 2})
def updateEntry(self, index, time): if not index == self.blankIndex: self.pairs[index][0].setText( timeh.timeToString(time, {"precision": 2}))