diff options
| -rw-r--r-- | src/match_up/__init__.py | 15 | ||||
| -rw-r--r-- | src/match_up/controller.py | 9 | ||||
| -rw-r--r-- | src/match_up/model.py | 19 | ||||
| -rw-r--r-- | src/match_up/routes.py | 11 |
4 files changed, 38 insertions, 16 deletions
diff --git a/src/match_up/__init__.py b/src/match_up/__init__.py index 3967cb9..996bf9a 100644 --- a/src/match_up/__init__.py +++ b/src/match_up/__init__.py @@ -2,25 +2,32 @@ from flask import Flask from dotenv import load_dotenv from argparse import ArgumentParser from importlib.resources import path +from match_up.utilities import Timer from match_up.controller import RoundGenerator from match_up.model import CourtList, PlayerList -from match_up.utilities import Timer load_dotenv() with path("match_up", "static") as p: static_folder = p with path("match_up", "templates") as p: template_folder = p -app = Flask("Match Up! Backend", static_folder=static_folder, template_folder=template_folder) +app = Flask( + "Match Up! Backend", static_folder=static_folder, template_folder=template_folder +) rg = RoundGenerator() from match_up import routes + def main(): parser = ArgumentParser() - parser.add_argument("-t", "--timer", help="Total mins per round", type=float, default=12) - parser.add_argument("-c", "--courts", help="Total number of courts", type=int, default=12) + parser.add_argument( + "-t", "--timer", help="Total mins per round", type=float, default=12 + ) + parser.add_argument( + "-c", "--courts", help="Total number of courts", type=int, default=12 + ) args = parser.parse_args() global rg rg.courts = CourtList(total=args.courts) diff --git a/src/match_up/controller.py b/src/match_up/controller.py index 6188b3e..a21fced 100644 --- a/src/match_up/controller.py +++ b/src/match_up/controller.py @@ -2,7 +2,14 @@ from typing import Tuple from operator import attrgetter from dataclasses import dataclass, field from match_up.utilities import sample_list, Timer -from match_up.model import Team, Game, PlayerList, CourtList, MAX_LEVEL, PLAYER_PER_COURT +from match_up.model import ( + Team, + Game, + PlayerList, + CourtList, + MAX_LEVEL, + PLAYER_PER_COURT, +) def _create_placeholders(courts: dict, name: str) -> list[Game]: diff --git a/src/match_up/model.py b/src/match_up/model.py index 592d60f..5d6c0f5 100644 --- a/src/match_up/model.py +++ b/src/match_up/model.py @@ -30,6 +30,7 @@ class Game: team1: Team team2: Team + @dataclass class CourtList: total: int = DEFAULT_COURTS @@ -53,21 +54,27 @@ class CourtList: inactive_courts = {k: v for k, v in self.courts.items() if not v} return active_courts, inactive_courts + def _load_csv_players(file_name: str) -> dict: with open(file_name, newline="") as file: pointer = reader(file) next(pointer, None) - players = { - id: Player(row[0], int(row[1])) for id, row in enumerate(pointer) - } + players = {id: Player(row[0], int(row[1])) for id, row in enumerate(pointer)} return players + def _generate_random_players(player_count: int = 80) -> list[Player]: - players = {i: Player(name=get_full_name(), - skill=randint(MIN_LEVEL, MAX_LEVEL), - status=bool(getrandbits(1))) for i in range(player_count)} + players = { + i: Player( + name=get_full_name(), + skill=randint(MIN_LEVEL, MAX_LEVEL), + status=bool(getrandbits(1)), + ) + for i in range(player_count) + } return players + @dataclass class PlayerList: location: str = None diff --git a/src/match_up/routes.py b/src/match_up/routes.py index 524d50b..319b111 100644 --- a/src/match_up/routes.py +++ b/src/match_up/routes.py @@ -4,10 +4,10 @@ from flask import render_template, request, url_for re = Environment(loader=PackageLoader("match_up")) + @app.route("/", methods=["GET"]) def home(): - template = re.get_template("index.j2").render(url_for=url_for) - return template + return re.get_template("index.j2").render(url_for=url_for) @app.route("/time", methods=["GET"]) @@ -68,8 +68,9 @@ def toggle_player(player_request): @app.route("/players", methods=["GET"]) def get_list_of_players(): - template = re.get_template("players.j2").render(players=rg.players.get_players(), url_for=url_for) - return template + return re.get_template("players.j2").render( + players=rg.players.get_players(), url_for=url_for + ) @app.route("/court-toggle/<court_number>", methods=["POST"]) @@ -82,4 +83,4 @@ def toggle_court(court_number): @app.route("/courts", methods=["GET"]) def get_list_of_courts(): - return render_template("courts.j2", courts=rg.courts.get_courts())
\ No newline at end of file + return render_template("courts.j2", courts=rg.courts.get_courts()) |
