data-composition/tools/transform_data.py

34 lines
1.2 KiB
Python
Executable File

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Helper functions to transform data from CSV files into haskell files
import csv
import os
import sys
import re
def transform_data(input_file, output_file):
filename:str= os.path.splitext(os.path.basename(output_file))[0]
with open(input_file, 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
with open(output_file, 'w') as f:
f.write('module '+filename+' where\n')
f.write(filename.lower()+' = [\n')
for row in reader:
if reader.line_num == 1:
continue
if reader.line_num == 2:
if len(row) > 0:
f.write(' ("' + row[0] + '", "' + row[1] + '")')
else:
if len(row) > 0:
f.write(',\n ("' + row[0] + '", "' + row[1] + '")')
f.write('\n ]\n')
f.close()
print('Data transformed from ' + input_file + ' to ' + output_file)
if __name__ == '__main__':
if len(sys.argv) < 3:
print('Usage: transform_data.py input_file output_file')
else:
transform_data(sys.argv[1], sys.argv[2])