From 404a5a792593199afec7e3bcbe4c7baa09e9968d Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 11 Sep 2025 16:58:46 +0200 Subject: [PATCH] Move _Update.value adaption into class proper. --- ircplom/client_tui.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index ba1b295..1c0b1b7 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 dataclass, asdict as dc_asdict +from dataclasses import asdict as dc_asdict from types import get_original_bases from typing import Any, Callable, Optional, Self, Sequence # ourselves @@ -25,10 +25,14 @@ _LOG_PREFIX_OUT = '>' _LOG_PREFIX_IN = '<' -@dataclass class _Update: - path: tuple[str, ...] - value: Optional[Any] = None + + def __init__(self, path: tuple[str, ...], value: Any) -> None: + self.path = path + for cls in [cls for cls in _UPDATING_DATACLASSES + if isinstance(value, get_original_bases(cls)[1])]: + value = cls(**dc_asdict(value)) + self.value = value @property def key(self) -> str: @@ -350,10 +354,6 @@ class _ClientWindowsManager: def update_db(self, update: _Update) -> bool: 'Apply update to .db, and if changing anything, log and trigger.' - for cls in [cls for cls in _UPDATING_DATACLASSES - if isinstance(update.value, get_original_bases(cls)[1])]: - update.value = cls(**dc_asdict(update.value)) # type: ignore - break result = self.db.recursive_set_and_report_change(update) if result is None: return False -- 2.30.2