Files
ThirdParty-6/ParaView-5.0.1/Utilities/MinimalBuildTools/ParseCSLog.py

60 lines
1.6 KiB
Python

import sys
import re
#---------------------------------------------------------------------------
def getUniqueClasses(inFile):
inFileHandle = open(sys.argv[1], 'r')
inFileContents = inFileHandle.read()
inFileHandle.close()
# look in file for this pattern: {vtkSomeClass}
rePattern = re.compile('{(vtk\S*).*}')
matchList = rePattern.findall(inFileContents)
classNames = []
for match in matchList:
classNames.append(match)
return sortAndRemoveDuplicates(classNames)
#---------------------------------------------------------------------------
def sortAndRemoveDuplicates(stringList):
d = dict() # using dict instead of set
for s in stringList: d[s] = None
uniqueList = d.keys()
uniqueList.sort()
return uniqueList
#---------------------------------------------------------------------------
def writeStrings(stringList, outFile):
"""Writes a list of strings to a file, writing one string per line"""
fd = open(outFile, 'w')
for string in stringList:
fd.write(string)
fd.write("\n")
#---------------------------------------------------------------------------
def printStrings(stringList):
for string in stringList: print string
#---------------------------------------------------------------------------
def main(argv=None):
if not argv: argv = sys.argv
if len(argv) != 3:
print "Usage: python ParseCSLog.py <log-file> <out-file>"
sys.exit(1)
classList = getUniqueClasses(argv[1])
writeStrings(classList, argv[2])
#---------------------------------------------------------------------------
if __name__ == "__main__":
main()