solo-auswertung/src/solo_turnier/worker.py

71 lines
1.9 KiB
Python
Raw Normal View History

2022-11-14 19:01:32 +00:00
import logging
class ResultRow:
def __init__(self, firstName, lastName, club, id, group, class_, dance, place, placeTo):
self.firstName = firstName
self.lastName = lastName
self.name = f'{firstName} {lastName}'
self.club = club
self.id = id
self.group = group
self.class_ = class_
self.dance = dance
self.place = place
self.placeTo = placeTo
class ResultPerson:
def __init__(self, firstName, lastName, club, id = None):
self.firstName = firstName
self.lastName = lastName
self.name = f'{firstName} {lastName}'
self.club = club
self.id = id
@staticmethod
def extractFromResultRow(row: ResultRow):
return ResultPerson(
firstName=row.firstName,
lastName=row.lastName,
club=row.club
)
class CompetitionResult:
def __init__(self, dance, class_, place, placeTo, id):
self.dance = dance
self.class_ = class_
self.place = place
self.placeTo = placeTo
self.id = int(id)
@staticmethod
def extractFromResultRow(row: ResultRow):
return CompetitionResult(
dance=row.dance,
class_=row.class_,
place=row.place, placeTo=row.placeTo,
id=row.id
)
class CSVExtractor:
def __init__(self):
self.l = logging.getLogger('solo_turnier.worker')
def mapCSVImport(self, imported) -> list[ResultRow]:
ret = []
def __processRow(row):
result = ResultRow(
dance=row[4],
id=row[5],
firstName=row[6], lastName=row[7],
club=row[10],
place=row[12], placeTo=row[13],
group=row[15], class_=row[16]
)
ret.append(result)
for row in imported['data']:
__processRow(row)
return ret