diff options
| author | Karan Jayachandra <karan.jayachandra@nxp.com> | 2024-04-12 10:29:29 +0200 |
|---|---|---|
| committer | Karan Jayachandra <karan.jayachandra@nxp.com> | 2024-04-12 10:29:29 +0200 |
| commit | c58caf5b8b8801ba826b0ff6b241d7f25a333bc8 (patch) | |
| tree | 45b22248fd4fbcf23046ef30707da8ff1f65c880 /model.py | |
| parent | e6939bb6421862a12048449094f2c55e6e9e401b (diff) | |
Added a more cleaner application
Diffstat (limited to 'model.py')
| -rw-r--r-- | model.py | 50 |
1 files changed, 50 insertions, 0 deletions
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 |
