Rename project, part 2 (#42)
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #42
This commit is contained in:
30
common/import_data.py
Normal file
30
common/import_data.py
Normal file
@ -0,0 +1,30 @@
|
||||
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))
|
Reference in New Issue
Block a user