From 264fc5bde4448558701cb0f6e7e4cf0320fa9b55 Mon Sep 17 00:00:00 2001
From: Franck Dary <franck.dary@lis-lab.fr>
Date: Mon, 11 Oct 2021 16:10:19 +0200
Subject: [PATCH] Allow for multiple input file in readTrace

---
 readTrace.py | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/readTrace.py b/readTrace.py
index e3ae03f..a9e9177 100755
--- a/readTrace.py
+++ b/readTrace.py
@@ -387,7 +387,7 @@ def prettyNumber(num) :
 ################################################################################
 if __name__ == "__main__" :
   parser = argparse.ArgumentParser()
-  parser.add_argument("trace", type=str,
+  parser.add_argument("traces", nargs="+", default=[],
     help="File produced by debug mode (-d) of the decoding.")
   parser.add_argument("--steps", default=False, action="store_true",
     help="Print all decoding steps.")
@@ -395,20 +395,28 @@ if __name__ == "__main__" :
     help="Print global stats about the decoding.")
   args = parser.parse_args()
 
-  history = History()
-  history.readFromTrace(args.trace)
-
-  history.segmentInBlocks()
-
-  stats = history.computeStats()
+  histories = []
+  stats = []
+  for trace in args.traces :
+    histories.append(History())
+    histories[-1].readFromTrace(trace)
+    histories[-1].segmentInBlocks()
+    stats.append(histories[-1].computeStats())
 
   if args.steps :
-    history.printHumanReadable(sys.stdout)
+    for i in range(len(args.traces)) :
+      print("History of '%s' :\n"%args.traces[i])
+      histories[i].printHumanReadable(sys.stdout)
 
   if args.stats :
-    asList = [list(stats.keys()), list(stats.values())]
-    maxLen = max(map(len, asList[0]))
+    asList = [["Filename"]+list(stats[0].keys())]
+    for i in range(len(args.traces)) :
+      asList.append([args.traces[i]]+list(map(prettyNumber, list(stats[i].values()))))
+    maxLens = [max(map(len, asList[i])) for i in range(len(asList))]
     for i in range(len(asList[0])) :
-      print("%s %s"%(asList[0][i]+"."*(1+maxLen-len(asList[0][i])), prettyNumber(asList[1][i])))
+      for j in range(len(asList)) :
+        sep = "." if j == 0 else " "
+        print("%s"%(asList[j][i]+sep*(1+maxLens[j]-len(asList[j][i]))), end=" ")
+      print("")
 ################################################################################
 
-- 
GitLab