timetracker/common/import_data.py
Lukáš Kucharczyk 56e5dfaa03
Some checks failed
continuous-integration/drone/push Build is failing
Rename project, part 2 (#42)
Reviewed-on: #42
2023-01-20 13:37:46 +00:00

31 lines
748 B
Python

import csv
from typing import TypeAlias
from games.models import Game
DataList: TypeAlias = list[dict[str, str]] | None
def read_csv(filename: str) -> DataList:
with open(filename, "r") as csvfile:
writer = csv.DictReader(csvfile)
return writer
def import_data(data: DataList):
matching_names = {}
for line in data:
name = line["name"]
if name not in matching_names:
# try exact match first
try:
game_id = Game.objects.get(name__iexact=name)
except:
pass
matching_names[name] = game_id
print(f"Exact matched {len(matching_names)} games.")
def import_from_file(filename: str):
import_data(read_csv(filename))