From 10feafdffc78525f0c794f1ea5c00602d4a568a5 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Mon, 27 Nov 2023 18:59:23 +0100 Subject: [PATCH] refactor: add typing for config and logger --- src/aura_engine/app.py | 4 ++-- src/aura_engine/base/config.py | 4 ++-- src/aura_engine/core/channels.py | 3 +++ src/aura_engine/core/client.py | 8 ++++++-- src/aura_engine/core/mixer.py | 8 +++++--- src/aura_engine/engine.py | 8 +++++--- src/aura_engine/events.py | 6 ++++-- src/aura_engine/plugins/clock.py | 6 ++++-- src/aura_engine/scheduling/api.py | 2 +- src/aura_engine/scheduling/scheduler.py | 4 ++-- src/aura_engine/scheduling/utils.py | 8 +++++--- 11 files changed, 39 insertions(+), 22 deletions(-) diff --git a/src/aura_engine/app.py b/src/aura_engine/app.py index 6af8781e..a0ef502c 100755 --- a/src/aura_engine/app.py +++ b/src/aura_engine/app.py @@ -40,8 +40,8 @@ class EngineRunner: """ logger: logging.Logger - config = confuse.Configuration - engine = None + config: confuse.Configuration + engine: Engine def __init__(self): """ diff --git a/src/aura_engine/base/config.py b/src/aura_engine/base/config.py index 572c7fa2..beee1bdc 100644 --- a/src/aura_engine/base/config.py +++ b/src/aura_engine/base/config.py @@ -82,8 +82,8 @@ class AuraConfig: _instance = None config_file_path = "" confuse_config = None - config = None # points to a validated config (hopefully later) - logger = None + config: confuse.Configuration = None # TODO points to a validated config (hopefully later) + logger: logging.Logger = None @classmethod @property diff --git a/src/aura_engine/core/channels.py b/src/aura_engine/core/channels.py index 9a8d3541..7af09d7b 100644 --- a/src/aura_engine/core/channels.py +++ b/src/aura_engine/core/channels.py @@ -570,6 +570,9 @@ class ChannelFactory: A factory to construct channels based on a given channel name. """ + logger: logging.Logger + config: confuse.Configuration + def __init__(self, mixer): """ Initialize the channel factory. diff --git a/src/aura_engine/core/client.py b/src/aura_engine/core/client.py index 96704b8a..f0f6cc6e 100644 --- a/src/aura_engine/core/client.py +++ b/src/aura_engine/core/client.py @@ -25,6 +25,8 @@ import logging import socket import urllib.parse +import confuse + from aura_engine.base.config import AuraConfig from aura_engine.base.lang import private, synchronized from aura_engine.base.utils import SimpleUtil as SU @@ -40,7 +42,8 @@ class CoreClient: skip_log_commands = ("aura_engine.status", "mixer.volume") instance = None - logger = None + logger: logging.Logger + config: confuse.Configuration connection = None event_dispatcher = None conn = None @@ -223,7 +226,8 @@ class CoreConnection: ENCODING = "UTF-8" - logger = None + logger: logging.Logger + config: confuse.Configuration socket_path = None socket = None connected = None diff --git a/src/aura_engine/core/mixer.py b/src/aura_engine/core/mixer.py index ca933fce..13a7519e 100644 --- a/src/aura_engine/core/mixer.py +++ b/src/aura_engine/core/mixer.py @@ -27,6 +27,8 @@ set of channels with their own control options. import logging import time +import confuse + from aura_engine.base.api import LiquidsoapUtil as LU from aura_engine.base.config import AuraConfig from aura_engine.base.lang import private @@ -44,8 +46,8 @@ class Mixer: A virtual mixer. """ - config = None - logger = None + logger: logging.Logger + config: confuse.Configuration client = None mixer_id = None channels = None @@ -63,8 +65,8 @@ class Mixer: client (PlayoutClient): The client for controlling playout """ - self.config = AuraConfig.instance.config self.logger = logging.getLogger("engine") + self.config = AuraConfig.instance.config self.mixer_id = mixer_id self.client = client self.channel_names = [] diff --git a/src/aura_engine/engine.py b/src/aura_engine/engine.py index dfc5c00f..424d0f7f 100644 --- a/src/aura_engine/engine.py +++ b/src/aura_engine/engine.py @@ -29,6 +29,7 @@ import time from contextlib import suppress from enum import Enum +import confuse import tomli from aura_engine.base.api import LiquidsoapUtil as LU @@ -55,8 +56,9 @@ class Engine: """ instance = None + logger: logging.Logger + config: confuse.Configuration engine_time_offset = 0.0 - logger = None scheduler = None event_dispatcher = None client = None @@ -258,8 +260,8 @@ class Player: INSTANT = "instant" FADE = "fade" - config = None - logger = None + logger: logging.Logger + config: confuse.Configuration channels = None resource_map = None event_dispatcher = None diff --git a/src/aura_engine/events.py b/src/aura_engine/events.py index 172dce0d..9deacedd 100644 --- a/src/aura_engine/events.py +++ b/src/aura_engine/events.py @@ -25,6 +25,8 @@ import datetime import logging from threading import Thread +import confuse + from aura_engine.base.config import AuraConfig from aura_engine.scheduling.domain import PlaylistItem from aura_engine.scheduling.scheduler import AuraScheduler @@ -71,8 +73,8 @@ class EngineEventDispatcher: Execute handlers for engine events. """ - logger = None - config = None + logger: logging.Logger + config: confuse.Configuration subscriber_registry = None engine = None diff --git a/src/aura_engine/plugins/clock.py b/src/aura_engine/plugins/clock.py index ea6c6dd1..44991ea0 100644 --- a/src/aura_engine/plugins/clock.py +++ b/src/aura_engine/plugins/clock.py @@ -31,6 +31,8 @@ TODO Refacotr: It should be reviewed if it's worth storing all the current, addi import logging from datetime import datetime, timedelta +import confuse + import aura_engine.scheduling.domain as domain from aura_engine.base.api import SimpleRestApi from aura_engine.base.config import AuraConfig @@ -43,8 +45,8 @@ class ClockInfoHandler: Send current studio clock information to the Engine API endpoint. """ - logger = None - config = None + logger: logging.Logger + config: confuse.Configuration api = None engine = None diff --git a/src/aura_engine/scheduling/api.py b/src/aura_engine/scheduling/api.py index f03f58c0..ee1e6248 100644 --- a/src/aura_engine/scheduling/api.py +++ b/src/aura_engine/scheduling/api.py @@ -64,8 +64,8 @@ class ApiFetcher(threading.Thread): """ - config: confuse.Configuration logging: logging.Logger + config: confuse.Configuration queue = None has_already_fetched = False stop_event = None diff --git a/src/aura_engine/scheduling/scheduler.py b/src/aura_engine/scheduling/scheduler.py index 5ca45fd3..234b4e92 100644 --- a/src/aura_engine/scheduling/scheduler.py +++ b/src/aura_engine/scheduling/scheduler.py @@ -134,7 +134,7 @@ class PlayCommand(EngineExecutor): """ engine: engine.Engine = None - config: AuraConfig = None + config: confuse.Configuration def __init__(self, engine: engine.Engine, items: [PlaylistItem]): """Initialize the play command. @@ -226,7 +226,7 @@ class AuraScheduler(threading.Thread): TimeslotCommandClass: EngineExecutor = TimeslotCommand PlayCommandClass: EngineExecutor = PlayCommand - config: AuraConfig + config: confuse.Configuration logger: logging.Logger engine: engine.Engine timetable: timetable.TimetableService diff --git a/src/aura_engine/scheduling/utils.py b/src/aura_engine/scheduling/utils.py index 16ddda32..6308b1d6 100644 --- a/src/aura_engine/scheduling/utils.py +++ b/src/aura_engine/scheduling/utils.py @@ -26,6 +26,8 @@ from __future__ import annotations import logging +import confuse + import aura_engine.scheduling as scheduling from aura_engine.base.config import AuraConfig from aura_engine.base.utils import SimpleUtil as SU @@ -38,15 +40,15 @@ class M3UPlaylistProcessor: Render a M3U Playlist as a engine compatible playlist dictionary. """ - config = None - logging = None + logging: logging.Logger + config: confuse.Configuration playlist_folder = None def __init__(self): """ Initialize. """ - self.config = AuraConfig.instance + self.config = AuraConfig.instance.config self.logger = logging.getLogger("engine") self.playlist_folder = ResourceUtil.playlist_folder_path() -- GitLab