-import argprocessor
-import re
-
-configs = {"EXECTIME": "-",
- "SATTIME":"-",
- "PREPROCESS" : "-",
- "ELEMENTOPT" : "-",
- "ELEMENTOPTSETS" : "-",
- "PROXYVARIABLE" : "-",
- "#SubGraph" : "-",
- "NODEENCODING" : "-",
- "EDGEENCODING" : "-",
- "NAIVEENCODER" :"-",
- "ENCODINGGRAPHOPT" : "-"
- }
-
-REGEXES = {"EXECTIME": "CSOLVER solve time: (.*)",
- "SATTIME":"SAT Solving time: (.*)",
- "PREPROCESS" : "Param PREPROCESS = (.*)range=\[0,1\]",
- "ELEMENTOPT" : "Param ELEMENTOPT = (.*)range=\[0,1\]",
- "ELEMENTOPTSETS" : "Param ELEMENTOPTSETS = (.*)range=\[0,1\]",
- "PROXYVARIABLE" : "Param PROXYVARIABLE = (.*)range=\[1,5\]",
- "#SubGraph" : "#SubGraph = (.*)",
- "NODEENCODING" : "Param NODEENCODING = (.*)range=\[0,3\](.*)",
- "EDGEENCODING" : "Param EDGEENCODING = (.*)range=\[0,2\](.*)",
- "NAIVEENCODER" : "Param NAIVEENCODER = (.*)range=\[1,3\](.*)",
- "ENCODINGGRAPHOPT" : "Param ENCODINGGRAPHOPT = (.*)range=\[0,1\]"
-
- }
-
-def printHeader(file):
- global configs
- mystr=""
- for config in configs:
- mystr+=str(config)+","
- print >>file, mystr
-
-def printConfig(file, data):
- print data
- mystr=""
- for config in data:
- mystr+=str(data[config])+","
- print >> file, mystr
-
-def main():
- global configs
- argprocess = argprocessor.AutoTunerArgParser()
- output = open("tuner.csv", "w")
- printHeader(output)
- with open(argprocess.getFileName()) as file:
- for line in file:
- if line.startswith("Mutating"):
- printConfig(output,configs)
- else :
- for regex in REGEXES:
- p = re.compile(REGEXES[regex])
- token = p.search(line)
- if token is not None:
- configs[regex] = re.findall("\d+\.?\d*", line)[0]
-
- print "Done with parsing " + argprocess.getFileName()
-
-if __name__ == "__main__":
- main()
\ No newline at end of file