diff --git a/src/diana/diana.py b/src/diana/diana.py --- a/src/diana/diana.py +++ b/src/diana/diana.py @@ -28,7 +28,8 @@ class SourceFile: self._shortName= "".join(re.split(r'[/\\]', fileName)[-1].split('.')[:-1]) self._game=go.Go() - games=Collection(open(self.fileName, 'r', encoding=cfg.encoding).read()).listGames() + with open(self.fileName, 'r', encoding=cfg.encoding) as f: + games=Collection(f.read()).listGames() self._record=list(games)[0] self._moves=list(collectMoves(self._record.root)) @@ -41,8 +42,13 @@ class SourceFile: self.createDiagram(k,k+cfg.movesPerDiagram).save(filename,"templ-pleb.svg") i+=1 + infoStr="""{GN} +B: {PB} {BR} +W: {PW} {WR} +{DT} +{RE}""".format(**self.fetchGameInfo(["GN","PB","BR","PW","WR","DT","RE"],"")) notes=open(os.path.join(cfg.outputDir,"{0}.txt".format(self._shortName)), 'w') - notes.write(self.createGameInfo()) + notes.write(infoStr) notes.close() print("done") @@ -77,13 +83,8 @@ class SourceFile: return template - def createGameInfo(self): - rec=self._record - return """{title} -B: {black} {bRank} -W: {white} {wRank} -{date} -{result}""".format(title=rec.get("GN",""), black=rec.get("PB",""), bRank=rec.get("BR",""), white=rec.get("PW",""), wRank=rec.get("WR",""), date=rec.get("DT",""), result=rec.get("RE","")) + def fetchGameInfo(self,fieldNames,default=None): + return {k:self._record.get(k,default) for k in fieldNames} def _setMove(self,k): self._game=go.Go() @@ -92,10 +93,10 @@ W: {white} {wRank} whiteStones=self._record.root.getProp("AW") if blackStones: for p in blackStones: - self._game.board[p.c][p.r]=BLACK + self._game.board[p.r][p.c]=BLACK if whiteStones: for p in whiteStones: - self._game.board[p.c][p.r]=WHITE + self._game.board[p.r][p.c]=WHITE for i in range(k): (color,move)=self._moves[i] @@ -116,6 +117,7 @@ W: {white} {wRank} if __name__=="__main__": + cfg.parseArgs() print("processing:") files=cfg.inputFiles[:]