Initial Version

This commit is contained in:
Firq 2024-09-30 20:40:26 +02:00
commit 3046b1ee7b
Signed by: Firq
GPG key ID: 3ACC61C8CEC83C20
21 changed files with 491 additions and 0 deletions
support_formatter/logic

View file

View file

@ -0,0 +1,44 @@
import csv
import pathlib
class FileTypeInvalidError(ValueError):
pass
def determine_type(row):
if set(row) == set(["servant", "level", "np_level", "skills", "bce"]):
return "servants"
if set(row) == set(["ce", "ce_level", "mlb"]):
return "ces"
return "unknown"
def process_csv(path: pathlib.Path):
data, entries = {}, []
with open(path, "r") as csv_file:
csv_reader = csv.DictReader(csv_file)
csv_type = determine_type(csv_reader.fieldnames)
if csv_type == "unknown":
raise FileTypeInvalidError()
for row in csv_reader:
entry = row.copy()
if csv_type == "servants":
entry.update({
"level": int(entry['level']),
"np_level": int(entry['np_level']),
"bce": bool(entry["bce"])
})
else:
entry.update({
"ce_level": int(entry['ce_level']),
"mlb": bool(entry["mlb"])
})
entries.append(entry)
if csv_type == "servants":
data = { "support_list": entries }
else:
data = { "ce_list": entries }
return data