From 8bc8a11d21d14e38a9bf63d03125b006363d858c Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sun, 10 Aug 2025 23:25:25 +0200 Subject: [PATCH] Minor refactoring for better readability. --- ircplom/client_tui.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index fc6db73..1df12ce 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -1,7 +1,7 @@ 'TUI adaptions to Client.' # built-ins from getpass import getuser -from dataclasses import asdict as dc_asdict +from dataclasses import dataclass, asdict as dc_asdict from inspect import signature from typing import Callable, Optional, Sequence # ourselves @@ -97,16 +97,15 @@ class _PrivmsgWindow(_ClientWindow): self.cmd__privmsg(target=self.nickname, msg=msg) +@dataclass class _ClientWindowsManager: - nick_confirmed: bool = False - nickname: str = '?' + _tui_log: Callable + _tui_new_window: Callable - def __init__(self, client_id: str, new_window: Callable, tui_log: Callable - ) -> None: - self._tui_log = lambda msg, **kw: tui_log(msg=msg, - client_id=client_id, **kw) + def __post_init__(self, *_, **__) -> None: + self.nick_confirmed = False + self.nickname = '?' self.windows: list[_ClientWindow] = [] - self._tui_new_window = new_window for scope in (LogScope.SERVER, LogScope.RAW): self._new_win(scope) @@ -193,8 +192,9 @@ class ClientTui(BaseTui): 'Forward todo to appropriate _ClientWindowsManager.' if client_id not in self._client_mngrs: self._client_mngrs[client_id] = _ClientWindowsManager( - client_id=client_id, tui_log=self._log, - new_window=lambda win_cls, **kw: self._new_window( + _tui_log=lambda msg, **kw: self._log( + msg, client_id=client_id, **kw), + _tui_new_window=lambda win_cls, **kw: self._new_window( win_cls, _q_out=self._q_out, client_id=client_id, **kw)) if getattr(self._client_mngrs[client_id], todo)(**kwargs) is not False: self.redraw_affected() -- 2.30.2