import getopt,sys,re
def getLength(base, str, bblack):
strlen = len(str)
if base > strlen:
if bblack == True:
return base
else:
return ((base-strlen)/4 + 1)*4 + strlen
else:
if bblack == True:
return strlen + 1
else:
return strlen + 4
def formatOutWords(mgroup, bblack):
importword = mgroup[0]
typeword = mgroup[1]
keyword = mgroup[2]
indexword = mgroup[3].strip()
infoword = mgroup[4]
if(len(infoword) > 0):
format = '\t%-*s%-*s%-*s= %-*s;\t\t%s'
infostr = format %(getLength(10,importword,bblack),importword,getLength(32,typeword,bblack),typeword,getLength(32,keyword,bblack),keyword,getLength(15,indexword,bblack),indexword,infoword)
else:
format = '\t%-*s%-*s%-*s= %s;'
infostr = format %(getLength(10,importword,bblack),importword,getLength(32,typeword,bblack),typeword,getLength(32,keyword,bblack),keyword,indexword)
if bblack == False:
return infostr.replace(" ","\t")
else:
return infostr
def stylePythonFile(infile, outfile, bblack):
filein = open(infile, 'r')
inlines = filein.readlines()
filein.close()
fileout = open(outfile, 'w')
pattern = re.compile('[\t ]*(\S+)\s+(\S+)\s+(\S+)\s*=\s*([^;]+);[^\n\r\S]*([^\n\r]*)')
for line in inlines:
if len(line) > 0:
line = line.replace("\n","")
match = pattern.match(line)
if match:
mgroup = match.groups()
if len(mgroup) >= 5:
line = formatOutWords(mgroup, bblack)
line = line + "\n"
fileout.write(line)
fileout.close()
def usage():
print("Usage %s: [-h|-i|-o|-b] [--help|--input|--output] args ..."%sys.argv[0])
##========================================================================================
if __name__ == '__main__':
inputFile = ""
outPutFile = ""
bblack = False
bexit = False
try:
opts,args = getopt.getopt(sys.argv[1:], "hi:o:b",["help","input=","output="])
for opt,arg in opts:
if opt in ("-i","--input"):
inputFile = arg
elif opt in ("-o","--output"):
outPutFile = arg
elif opt in ("-b"):
bblack = True
else:
bexit = True
except getopt.GetoptError:
bexit = True
if bexit == True or (len(inputFile) == 0 and len(outPutFile) == 0):
usage()
sys.exit(1)
if len(inputFile) == 0:
inputFile = outPutFile
if len(outPutFile) == 0:
outPutFile = inputFile
stylePythonFile(inputFile, outPutFile, bblack)