#!/usr/bin/python

import os, sys

if len(sys.argv) == 3:
	
	filename = sys.argv[1]
	outname = sys.argv[2]
	infile = open(filename, "r")
else:
	
	print ("Error: Wrong number of arguments")
	print ("Usage: python csvtoWdat.py <input file> <output file>\n")
	exit()

attributes = []
filelines = []
attlen = 0
a = 0
b = 0

for line in infile:
	
	curline = line.split(',')
	projname = curline[0]
	ver = curline[1]
	del curline[0:3]
	curline[len(curline) - 1] = curline[len(curline) - 1].replace("\r\n", "")
	curline[len(curline) - 1] = curline[len(curline) - 1].replace("\n", "")
	filelines.append(curline[0:len(curline)])
	
	if attlen != 0 and b == 0:
		
		data = [ [] for c in range(attlen) ]
		values = [ [] for c in range(attlen) ]
		
		while b != attlen:
			
			data[b] = [attributes[b]]
			b += 1
	
	if a == 0:
		
		attributes = curline
		attlen = len(curline)
		a += 1
	
	else:
		
		d = 0
		while d != attlen:
			
			data[d].append(curline[d])
			values[d] = list(set(data[d]))
			
			values[d].sort()
			values[d].pop()
			d += 1
	

infile.close()

#################################
#################################

header = "@relation " + projname + ver + "\n\n"

# output file handler
try:
	
	outfile = open(outname, "w")
	outfile.write(header)
except IOError:
	
	print ("Error: You lack permission to write files here\n")
	exit()

attributes.pop()
values.pop()
filelines.pop(0)
e = 0
for attr in attributes:
	
	attrline = "@attribute " + attr + " "
	outfile.write(attrline)
	
	for value in values[e]:
		
		valline = value + " "
		outfile.write(valline)
	
	outfile.write("\n")
	e += 1

classes = data.pop()
classes[0] = classes[0].replace("\r\n", "")
classes[0] = classes[0].replace("\n", "")
classline = "@class " + classes[0] + " " 
outfile.write(classline)
del classes[0]
classes = list(set(classes))

for value in classes:
	
	value = value.replace("\r\n", "")
	value = value.replace("\n", "")
	valline = value + " "
	outfile.write(valline)

outfile.write("\n\n")
outfile.write("@data\n")

for eachline in filelines:
	
	for eachval in eachline:
		
		valline = eachval + " "
		outfile.write(valline)
	outfile.write("\n")

outfile.write("\n\n")
outfile.close()

#print ("Data: %s\n" % (data))
#print ("Values: %s\n" % (values))
#print ("Project name: %s, Ver: %s\n" % (projname, ver))
#print ("Classes: %s\n" % (classes))
#print ("Filelines: %s\n" % (filelines))
