From c58caf5b8b8801ba826b0ff6b241d7f25a333bc8 Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Fri, 12 Apr 2024 10:29:29 +0200 Subject: Added a more cleaner application --- model.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 model.py (limited to 'model.py') diff --git a/model.py b/model.py new file mode 100644 index 0000000..53119eb --- /dev/null +++ b/model.py @@ -0,0 +1,50 @@ +from csv import reader +from pathlib import Path +from dataclasses import dataclass + + +@dataclass +class Player: + name: str + skill: int + status: bool + + +class PlayerList: + def __init__(self, location: Path = "players.csv"): + with open(location, newline="") as file: + data_reader = reader(file) + next(data_reader, None) + self.players = [ + ( + Player( + name=row[0], + skill=row[1], + status=(row[2] == "True"), + ) + ) + for row in data_reader + ] + + def get_player(self, player_request: str): + return [player for player in self.players if player.name == player_request] + + def toggle_player(self, player_request: Player): + self.players = [ + ( + Player( + name=player.name, + skill=player.skill, + status=not player.status, + ) + if player.name == player_request + else player + ) + for player in self.players + ] + + def __str__(self): + display_string = "" + for player in self.players: + display_string += player.__str__() + "\n" + return display_string -- cgit v1.3.1