diff options
Diffstat (limited to 'pysite')
-rw-r--r-- | pysite/__init__.py | 3 | ||||
-rw-r--r-- | pysite/base_route.py | 29 | ||||
-rw-r--r-- | pysite/route_manager.py | 41 | ||||
-rw-r--r-- | pysite/views/__init__.py | 3 | ||||
-rw-r--r-- | pysite/views/error_handlers/__init__.py | 3 | ||||
-rw-r--r-- | pysite/views/error_handlers/http_404.py | 14 | ||||
-rw-r--r-- | pysite/views/healthcheck.py | 15 | ||||
-rw-r--r-- | pysite/views/index.py | 12 | ||||
-rw-r--r-- | pysite/views/invite.py | 15 |
9 files changed, 0 insertions, 135 deletions
diff --git a/pysite/__init__.py b/pysite/__init__.py deleted file mode 100644 index ba286add..00000000 --- a/pysite/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# coding=utf-8 - -__author__ = "Gareth Coles" diff --git a/pysite/base_route.py b/pysite/base_route.py deleted file mode 100644 index 76338280..00000000 --- a/pysite/base_route.py +++ /dev/null @@ -1,29 +0,0 @@ -# coding=utf-8 -from flask import Flask -from flask.views import MethodView - -__author__ = "Gareth Coles" - - -class BaseView(MethodView): - path = None #: str - name = None #: str - - @classmethod - def setup(cls: "BaseView", app: Flask): - if not cls.path or not cls.name: - raise RuntimeError("Route views must have both `path` and `name` defined") - - app.add_url_rule(cls.path, view_func=cls.as_view(cls.name)) - - -class ErrorView(MethodView): - name = None #: str - error_code = None #: int - - @classmethod - def setup(cls: "ErrorView", app: Flask): - if not cls.name or not cls.error_code: - raise RuntimeError("Error views must have both `name` and `error_code` defined") - - app._register_error_handler(None, 404, cls.as_view(cls.name)) diff --git a/pysite/route_manager.py b/pysite/route_manager.py deleted file mode 100644 index 501076b7..00000000 --- a/pysite/route_manager.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding=utf-8 -import importlib -import inspect -import os - -from flask import Flask - -from pysite.base_route import BaseView, ErrorView - -__author__ = "Gareth Coles" - - -class RouteManager: - def __init__(self): - self.app = Flask(__name__) - self.app.secret_key = os.environ.get("WEBPAGE_SECRET_KEY") - - self.load_views() - - def run(self): - self.app.run(port=int(os.environ.get("WEBPAGE_PORT")), debug=False) - - def load_views(self, location="pysite/views"): - for filename in os.listdir(location): - if os.path.isdir(f"{location}/{filename}"): - # Recurse if it's a directory; load ALL the views! - self.load_views(location=f"{location}/{filename}") - continue - - if filename.endswith(".py") and not filename.startswith("__init__"): - module = importlib.import_module(f"{location}/{filename}".replace("/", ".")[:-3]) - - for cls_name, cls in inspect.getmembers(module): - if ( - inspect.isclass(cls) and - cls is not BaseView and - cls is not ErrorView and - (BaseView in cls.__mro__ or ErrorView in cls.__mro__) - ): - cls.setup(self.app) - print(f"View loaded: {cls.name: <25} ({module.__name__}.{cls_name})") diff --git a/pysite/views/__init__.py b/pysite/views/__init__.py deleted file mode 100644 index ba286add..00000000 --- a/pysite/views/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# coding=utf-8 - -__author__ = "Gareth Coles" diff --git a/pysite/views/error_handlers/__init__.py b/pysite/views/error_handlers/__init__.py deleted file mode 100644 index ba286add..00000000 --- a/pysite/views/error_handlers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# coding=utf-8 - -__author__ = "Gareth Coles" diff --git a/pysite/views/error_handlers/http_404.py b/pysite/views/error_handlers/http_404.py deleted file mode 100644 index eea1e630..00000000 --- a/pysite/views/error_handlers/http_404.py +++ /dev/null @@ -1,14 +0,0 @@ -# coding=utf-8 -from werkzeug.exceptions import NotFound - -from pysite.base_route import ErrorView - -__author__ = "Gareth Coles" - - -class Error404View(ErrorView): - name = "error_404" - error_code = 404 - - def get(self, error: NotFound): - return "replace me with a template, 404 not found", 404 diff --git a/pysite/views/healthcheck.py b/pysite/views/healthcheck.py deleted file mode 100644 index 660c8a96..00000000 --- a/pysite/views/healthcheck.py +++ /dev/null @@ -1,15 +0,0 @@ -# coding=utf-8 -from flask import jsonify - -from pysite.base_route import BaseView - - -__author__ = "Gareth Coles" - - -class IndexView(BaseView): - path = "/healthcheck" - name = "healthcheck" - - def get(self): - return jsonify({"status": "ok"}) diff --git a/pysite/views/index.py b/pysite/views/index.py deleted file mode 100644 index 2e779003..00000000 --- a/pysite/views/index.py +++ /dev/null @@ -1,12 +0,0 @@ -# coding=utf-8 -from pysite.base_route import BaseView - -__author__ = "Gareth Coles" - - -class IndexView(BaseView): - path = "/" - name = "index" - - def get(self): - return "Coming soon:tm:" diff --git a/pysite/views/invite.py b/pysite/views/invite.py deleted file mode 100644 index d035fc99..00000000 --- a/pysite/views/invite.py +++ /dev/null @@ -1,15 +0,0 @@ -# coding=utf-8 -from flask import redirect - -from pysite.base_route import BaseView - - -__author__ = "Gareth Coles" - - -class InviteView(BaseView): - path = "/invite" - name = "invite" - - def get(self): - return redirect("http://invite.pythondiscord.com/") |