From f42f4cf2b688d34c45361506cc940d712f75773f Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sat, 7 Oct 2023 11:59:46 -0400 Subject: [PATCH 1/5] Bump multiple dep versions Refactor zoneinfonotfounderror --- app/classes/shared/main_controller.py | 2 +- app/classes/shared/server.py | 2 +- app/classes/shared/tasks.py | 3 +-- app/classes/web/panel_handler.py | 2 +- requirements.txt | 25 ++++++++++++------------- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/app/classes/shared/main_controller.py b/app/classes/shared/main_controller.py index 541e45ad..23586696 100644 --- a/app/classes/shared/main_controller.py +++ b/app/classes/shared/main_controller.py @@ -8,11 +8,11 @@ import time import json import logging import threading +from zoneinfo import ZoneInfoNotFoundError from peewee import DoesNotExist # TZLocal is set as a hidden import on win pipeline from tzlocal import get_localzone -from tzlocal.utils import ZoneInfoNotFoundError from apscheduler.schedulers.background import BackgroundScheduler from app.classes.models.server_permissions import EnumPermissionsServer diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 79dc0f22..0747ff55 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -16,8 +16,8 @@ import json from zoneinfo import ZoneInfo # TZLocal is set as a hidden import on win pipeline +from zoneinfo import ZoneInfoNotFoundError from tzlocal import get_localzone -from tzlocal.utils import ZoneInfoNotFoundError from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.jobstores.base import JobLookupError, ConflictingIdError diff --git a/app/classes/shared/tasks.py b/app/classes/shared/tasks.py index c89be9d8..76f20119 100644 --- a/app/classes/shared/tasks.py +++ b/app/classes/shared/tasks.py @@ -5,9 +5,8 @@ import threading import asyncio import datetime import json - +from zoneinfo import ZoneInfoNotFoundError from tzlocal import get_localzone -from tzlocal.utils import ZoneInfoNotFoundError from apscheduler.events import EVENT_JOB_EXECUTED from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.cron import CronTrigger diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index 58b6056c..7a0afd32 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -14,8 +14,8 @@ import tornado.escape from tornado import iostream # TZLocal is set as a hidden import on win pipeline +from zoneinfo import ZoneInfoNotFoundError from tzlocal import get_localzone -from tzlocal.utils import ZoneInfoNotFoundError from app.classes.models.servers import Servers from app.classes.models.server_permissions import EnumPermissionsServer diff --git a/requirements.txt b/requirements.txt index 1967c40e..341a1d79 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,22 +1,21 @@ -apscheduler==3.8.1 -argon2-cffi==21.3 +apscheduler==3.10.4 +argon2-cffi==23.1.0 cached_property==1.5.2 -colorama==0.4 -croniter==1.3.5 -cryptography==41.0.3 -libgravatar==1.0.0 +colorama==0.4.6 +croniter==1.4.1 +cryptography==41.0.4 +libgravatar==1.0.4 nh3==0.2.14 -packaging==23.1 -peewee==3.13 -pexpect==4.8 +packaging==23.2 +peewee==3.16.3 psutil==5.9.5 pyOpenSSL==23.2.0 -pyjwt==2.4.0 +pyjwt==2.8.0 PyYAML==6.0.1 -requests==2.31 +requests==2.31.0 termcolor==1.1 tornado==6.3.3 -tzlocal==4.0 -jsonschema==4.5.1 +tzlocal==5.1 +jsonschema==4.19.1 orjson==3.8.12 From 42bdf2994d98d904ad989e1963fbe92f072023b4 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sat, 7 Oct 2023 13:06:26 -0400 Subject: [PATCH 2/5] Move callback to unbound --- app/classes/shared/server.py | 75 +++++++++++++++++------------------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 0747ff55..ccd09605 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -41,7 +41,43 @@ with redirect_stderr(NullWriter()): logger = logging.getLogger(__name__) +def callback(called_func): + # Usage of @callback on method + # definition to run a webhook check + # on method completion + def wrapper(*args, **kwargs): + res = None + logger.debug("Checking for callbacks") + try: + res = called_func(*args, **kwargs) + finally: + events = WebhookFactory.get_monitored_events() + if called_func.__name__ in events: + server_webhooks = HelpersWebhooks.get_webhooks_by_server( + args[0].server_id, True + ) + for swebhook in server_webhooks: + if called_func.__name__ in str(swebhook.trigger).split(","): + logger.info( + f"Found callback for event {called_func.__name__}" + f" for server {args[0].server_id}" + ) + webhook = HelpersWebhooks.get_webhook_by_id(swebhook.id) + webhook_provider = WebhookFactory.create_provider( + webhook["webhook_type"] + ) + if res is not False and swebhook.enabled: + webhook_provider.send( + bot_name=webhook["bot_name"], + server_name=args[0].name, + title=webhook["name"], + url=webhook["url"], + message=webhook["body"], + color=webhook["color"], + ) + return res + return wrapper class ServerOutBuf: lines = {} @@ -166,45 +202,6 @@ class ServerInstance: self.stats_helper.server_crash_reset() self.stats_helper.set_update(False) - @staticmethod - def callback(called_func): - # Usage of @callback on method - # definition to run a webhook check - # on method completion - def wrapper(*args, **kwargs): - res = None - logger.debug("Checking for callbacks") - try: - res = called_func(*args, **kwargs) - finally: - events = WebhookFactory.get_monitored_events() - if called_func.__name__ in events: - server_webhooks = HelpersWebhooks.get_webhooks_by_server( - args[0].server_id, True - ) - for swebhook in server_webhooks: - if called_func.__name__ in str(swebhook.trigger).split(","): - logger.info( - f"Found callback for event {called_func.__name__}" - f" for server {args[0].server_id}" - ) - webhook = HelpersWebhooks.get_webhook_by_id(swebhook.id) - webhook_provider = WebhookFactory.create_provider( - webhook["webhook_type"] - ) - if res is not False and swebhook.enabled: - webhook_provider.send( - bot_name=webhook["bot_name"], - server_name=args[0].name, - title=webhook["name"], - url=webhook["url"], - message=webhook["body"], - color=webhook["color"], - ) - return res - - return wrapper - # ********************************************************************************** # Minecraft Server Management # ********************************************************************************** From 882f241181d8fc254d62efd04f1b6fc41f9d1783 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sat, 7 Oct 2023 13:13:35 -0400 Subject: [PATCH 3/5] Appease black --- app/classes/shared/server.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index ccd09605..a8471982 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -41,6 +41,7 @@ with redirect_stderr(NullWriter()): logger = logging.getLogger(__name__) + def callback(called_func): # Usage of @callback on method # definition to run a webhook check @@ -78,6 +79,8 @@ def callback(called_func): return res return wrapper + + class ServerOutBuf: lines = {} From 77c7264f2b6c187e263de6bdd80a45878542a937 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Sat, 7 Oct 2023 18:32:03 +0100 Subject: [PATCH 4/5] Update changelog !639 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d297bce1..a572d201 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ - Improve ui visibility of Build Wizard selection tabs ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/633)) - Add additional logging for server bootstrap & moves unnecessary logging to `debug` for improved log clarity ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/635)) - Bump orjson to 3.9.7 for python 3.12 support ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/638)) +- Bump all Crafty required python dependancies, maintaining minimum 3.9 support ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/639)) ### Lang TBD

From 529b3a159cfa1c7e69b27f8c4e1c4d8a1362b498 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sat, 7 Oct 2023 13:55:36 -0400 Subject: [PATCH 5/5] Appease the linter --- app/classes/web/panel_handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index 7a0afd32..e1d21f03 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -7,6 +7,7 @@ import json import logging import threading import urllib.parse +from zoneinfo import ZoneInfoNotFoundError import nh3 import requests import tornado.web @@ -14,7 +15,6 @@ import tornado.escape from tornado import iostream # TZLocal is set as a hidden import on win pipeline -from zoneinfo import ZoneInfoNotFoundError from tzlocal import get_localzone from app.classes.models.servers import Servers