summaryrefslogtreecommitdiff
path: root/model.py
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-12 10:29:29 +0200
committerKaran Jayachandra <karan.jayachandra@nxp.com>2024-04-12 10:29:29 +0200
commitc58caf5b8b8801ba826b0ff6b241d7f25a333bc8 (patch)
tree45b22248fd4fbcf23046ef30707da8ff1f65c880 /model.py
parente6939bb6421862a12048449094f2c55e6e9e401b (diff)
Added a more cleaner application
Diffstat (limited to 'model.py')
-rw-r--r--model.py50
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