irt-service/app/helpers/service_helper.py

52 lines
1.2 KiB
Python

import csv
import io
import re
def items_csv_to_dict(items_csv_reader):
items = []
headers = []
# get headers and items
for key, row in enumerate(items_csv_reader):
if key == 0:
headers = row
else:
item = { 'attributes': [] }
for key, col in enumerate(headers):
if key == 0:
item[col] = row[key]
elif col == 'b_param':
item[col] = row[key]
elif key > 1:
item['attributes'].append({
'id': col,
'value': row[key],
'type': 'metadata'
})
items.append(item)
return items
def solution_to_file(buffer, total_form_items, forms):
wr = csv.writer(buffer, dialect='excel', delimiter=',')
# write header row for first row utilizing the total items all forms will have
# and the cut score as the last item
header = [x + 1 for x in range(total_form_items)] + ['cut score']
wr.writerow(header)
# add each form as row to processed csv
for form in forms:
# provide generated items and cut score
row = form.items + [form.cut_score]
wr.writerow(row)
buff2 = io.BytesIO(buffer.getvalue().encode())
return buff2
def key_to_uuid(key):
return re.split("_", key)[0]