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