From 2a390e99e03fe538169aa6d7c23669eaa5ece467 Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Fri, 25 Oct 2024 18:24:13 +0200 Subject: Added the requirements on the static files --- pyproject.toml | 19 +++++++++- src/match_up/__init__.py | 93 ++++++++++++++++++++++++++++++++++++++++++++++ src/match_up/app.py | 90 -------------------------------------------- src/match_up/controller.py | 4 +- 4 files changed, 112 insertions(+), 94 deletions(-) create mode 100644 src/match_up/__init__.py delete mode 100644 src/match_up/app.py diff --git a/pyproject.toml b/pyproject.toml index cae5554..9ef21d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,10 @@ +[build-system] +requires = ["setuptools>=64", "setuptools_scm>=8"] +build-backend = "setuptools.build_meta" + [project] name = "match_up" -version = "0.1" +dynamic = ["version"] authors = [ { name="Karan Jayachandra", email="mail@karanjayachandra.com" }, ] @@ -15,4 +19,15 @@ classifiers = [ [project.urls] Homepage = "https://gitlab.com/KaranJayachandra/match_up" -Issues = "https://gitlab.com/KaranJayachandra/match_up/-/issues" \ No newline at end of file +Issues = "https://gitlab.com/KaranJayachandra/match_up/-/issues" + + +[tool.setuptools.packages.find] +where = ["src"] + +[tool.setuptools.package-data] +"*" = ["*.txt"] +mypkg1 = ["data1.rst"] + +[project.scripts] +match_up = "match_up:main" \ No newline at end of file diff --git a/src/match_up/__init__.py b/src/match_up/__init__.py new file mode 100644 index 0000000..badf3f0 --- /dev/null +++ b/src/match_up/__init__.py @@ -0,0 +1,93 @@ +from dotenv import load_dotenv +from match_up.controller import RoundGenerator +from match_up.model import CourtList, PlayerList +from jinja2 import FileSystemLoader, Environment +from flask import Flask, render_template, request + + +load_dotenv() +app = Flask("Match Up! Backend") +rg = RoundGenerator(courts=CourtList(), players=PlayerList()) +re = Environment(loader=FileSystemLoader("templates")) + + +@app.route("/", methods=["GET"]) +def home(): + return render_template("index.j2") + + +@app.route("/time", methods=["GET"]) +def get_time(): + mins, secs = rg.timer.get() + t = re.from_string('{% from "macros.j2" import timer %}{{timer(mins, secs)}}') + return render_template(t, mins=mins, secs=secs) + + +@app.route("/control", methods=["GET"]) +def get_controls(): + return render_template("controls.j2", courts=rg.courts.get_courts()) + + +@app.route("/guests", methods=["GET"]) +def get_guests(): + t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') + return render_template(t, count=rg.players.guests) + + +@app.route("/decrement", methods=["POST"]) +def increment_guests(): + t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') + return render_template(t, count=rg.players.decrement_guests()) + + +@app.route("/increment", methods=["POST"]) +def decrement_guests(): + t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') + return render_template(t, count=rg.players.increment_guests()) + + +@app.route("/propose", methods=["POST"]) +def get_random_games(): + levels = int(request.form["type"].split()[0]) + return render_template("games.j2", games=rg.propose(levels), title="Proposal") + + +@app.route("/confirm", methods=["POST"]) +def confirm_games(): + return render_template("games.j2", games=rg.confirm(), title=f"Round: {rg.round}") + + +@app.route("/clear", methods=["POST"]) +def clear_games(): + return render_template("games.j2", games=rg.clear(), title=f"Round: {rg.round}") + + +@app.route("/player-toggle/", methods=["POST"]) +def toggle_player(player_request): + id = int(player_request) + status, name = rg.players.toggle_player_status(id) + t = re.from_string( + '{% from "macros.j2" import player %}{{player(id, status, name)}}' + ) + return render_template(t, id=id, status=status, name=name) + + +@app.route("/players", methods=["GET"]) +def get_list_of_players(): + return render_template("players.j2", players=rg.players.get_players()) + + +@app.route("/court-toggle/", methods=["POST"]) +def toggle_court(court_number): + id = int(court_number) + status = rg.courts.toggle_court_status(id) + t = re.from_string('{% from "macros.j2" import court %}{{ court(id, status) }}') + return render_template(t, id=id, status=status) + + +@app.route("/courts", methods=["GET"]) +def get_list_of_courts(): + return render_template("courts.j2", courts=rg.courts.get_courts()) + +def main(): + app.run() diff --git a/src/match_up/app.py b/src/match_up/app.py deleted file mode 100644 index cb790f3..0000000 --- a/src/match_up/app.py +++ /dev/null @@ -1,90 +0,0 @@ -from dotenv import load_dotenv -from controller import RoundGenerator -from model import CourtList, PlayerList -from jinja2 import FileSystemLoader, Environment -from flask import Flask, render_template, request - - -load_dotenv() -app = Flask("Match Up! Backend") -rg = RoundGenerator(courts=CourtList(), players=PlayerList()) -re = Environment(loader=FileSystemLoader("templates")) - - -@app.route("/", methods=["GET"]) -def home(): - return render_template("index.j2") - - -@app.route("/time", methods=["GET"]) -def get_time(): - mins, secs = rg.timer.get() - t = re.from_string('{% from "macros.j2" import timer %}{{timer(mins, secs)}}') - return render_template(t, mins=mins, secs=secs) - - -@app.route("/control", methods=["GET"]) -def get_controls(): - return render_template("controls.j2", courts=rg.courts.get_courts()) - - -@app.route("/guests", methods=["GET"]) -def get_guests(): - t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') - return render_template(t, count=rg.players.guests) - - -@app.route("/decrement", methods=["POST"]) -def increment_guests(): - t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') - return render_template(t, count=rg.players.decrement_guests()) - - -@app.route("/increment", methods=["POST"]) -def decrement_guests(): - t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}') - return render_template(t, count=rg.players.increment_guests()) - - -@app.route("/propose", methods=["POST"]) -def get_random_games(): - levels = int(request.form["type"].split()[0]) - return render_template("games.j2", games=rg.propose(levels), title="Proposal") - - -@app.route("/confirm", methods=["POST"]) -def confirm_games(): - return render_template("games.j2", games=rg.confirm(), title=f"Round: {rg.round}") - - -@app.route("/clear", methods=["POST"]) -def clear_games(): - return render_template("games.j2", games=rg.clear(), title=f"Round: {rg.round}") - - -@app.route("/player-toggle/", methods=["POST"]) -def toggle_player(player_request): - id = int(player_request) - status, name = rg.players.toggle_player_status(id) - t = re.from_string( - '{% from "macros.j2" import player %}{{player(id, status, name)}}' - ) - return render_template(t, id=id, status=status, name=name) - - -@app.route("/players", methods=["GET"]) -def get_list_of_players(): - return render_template("players.j2", players=rg.players.get_players()) - - -@app.route("/court-toggle/", methods=["POST"]) -def toggle_court(court_number): - id = int(court_number) - status = rg.courts.toggle_court_status(id) - t = re.from_string('{% from "macros.j2" import court %}{{ court(id, status) }}') - return render_template(t, id=id, status=status) - - -@app.route("/courts", methods=["GET"]) -def get_list_of_courts(): - return render_template("courts.j2", courts=rg.courts.get_courts()) diff --git a/src/match_up/controller.py b/src/match_up/controller.py index e6dc827..2f8bfaf 100644 --- a/src/match_up/controller.py +++ b/src/match_up/controller.py @@ -1,8 +1,8 @@ from typing import Tuple from operator import attrgetter from dataclasses import dataclass -from utilities import sample_list, Timer -from model import Team, Game, PlayerList, CourtList, MAX_LEVEL, PLAYER_PER_COURT +from match_up.utilities import sample_list, Timer +from match_up.model import Team, Game, PlayerList, CourtList, MAX_LEVEL, PLAYER_PER_COURT def _create_placeholders(courts: dict, name: str) -> list[Game]: -- cgit v1.3.1