From: Christian Heller Date: Tue, 5 Aug 2025 04:05:04 +0000 (+0200) Subject: Refactor off PayloadMixin. X-Git-Url: https://plomlompom.com/repos/booking/condition_descriptions?a=commitdiff_plain;h=e7eb82a97e4e80bdd8d19a42624eb73bd6bb27b0;p=ircplom Refactor off PayloadMixin. --- diff --git a/ircplom.py b/ircplom.py index b10fb65..007dd05 100755 --- a/ircplom.py +++ b/ircplom.py @@ -19,7 +19,7 @@ def main_loop() -> None: if isinstance(event, QuitEvent): break if isinstance(event, ExceptionEvent): - raise event.payload + raise event.exception if isinstance(event, TuiEvent): event.affect(tui) elif isinstance(event, NewClientEvent): diff --git a/ircplom/client.py b/ircplom/client.py index 97c0393..717abb2 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -7,8 +7,7 @@ from getpass import getuser from threading import Thread from typing import Callable, Optional # ourselves -from ircplom.events import (AffectiveEvent, ExceptionEvent, Logger, - PayloadMixin, QueueMixin) +from ircplom.events import AffectiveEvent, ExceptionEvent, Logger, QueueMixin from ircplom.irc_conn import (BaseIrcConnection, IrcConnAbortException, IrcMessage, PORT_SSL) @@ -297,9 +296,9 @@ class Client(ABC, ClientQueueMixin): @dataclass -class NewClientEvent(AffectiveEvent, PayloadMixin): +class NewClientEvent(AffectiveEvent): 'Put Client .payload into ClientsDb target.' - payload: 'Client' + payload: Client def affect(self, target: ClientsDb) -> None: target[self.payload.id_] = self.payload diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index 59cd1e4..6d0b5c7 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -3,7 +3,6 @@ from dataclasses import dataclass from getpass import getuser # ourselves -from ircplom.events import PayloadMixin from ircplom.tui_base import (BaseTui, PromptWidget, TuiEvent, Window, CMD_SHORTCUTS) from ircplom.irc_conn import IrcMessage @@ -171,26 +170,21 @@ class ClientTui(BaseTui): @dataclass -class _ClientWindowEvent(TuiEvent, ClientIdMixin): - chat: str = '' - - -@dataclass -class _ClientLogEvent(_ClientWindowEvent, PayloadMixin): - payload: str +class _ClientLogEvent(TuiEvent, ClientIdMixin): + chat: str + msg: str def affect(self, target: ClientTui) -> None: if self.chat == CHAT_GLOB: for win in target.client_wins(self.client_id): - win.log.append(self.payload) + win.log.append(self.msg) else: - target.client_win(self.client_id, self.chat - ).log.append(self.payload) + target.client_win(self.client_id, self.chat).log.append(self.msg) target.redraw_affected() @dataclass -class _ClientPromptEvent(_ClientWindowEvent, PayloadMixin): +class _ClientPromptEvent(TuiEvent, ClientIdMixin): payload: tuple[str, str] def affect(self, target: ClientTui) -> None: @@ -203,7 +197,7 @@ class _ClientPromptEvent(_ClientWindowEvent, PayloadMixin): class _ClientKnowingTui(Client): def _log(self, msg: str, chat: str = '') -> None: - self._cput(_ClientLogEvent, chat=chat, payload=msg) + self._cput(_ClientLogEvent, chat=chat, msg=msg) def update_login(self, nick_confirmed: bool, nickname: str = '') -> None: super().update_login(nick_confirmed, nickname) diff --git a/ircplom/events.py b/ircplom/events.py index 4af5f02..85f617c 100644 --- a/ircplom/events.py +++ b/ircplom/events.py @@ -32,15 +32,9 @@ class AffectiveEvent(Event, ABC): @dataclass -class PayloadMixin: - 'Extends with .payload= passed as first argument.' - payload: Any - - -@dataclass -class ExceptionEvent(Event, PayloadMixin): +class ExceptionEvent(Event): 'To deliver Exception to main loop for handling.' - payload: Exception + exception: Exception @dataclass