From: Christian Heller Date: Thu, 11 Sep 2025 14:58:46 +0000 (+0200) Subject: Move _Update.value adaption into class proper. X-Git-Url: https://plomlompom.com/repos/reset_cookie?a=commitdiff_plain;h=404a5a792593199afec7e3bcbe4c7baa09e9968d;p=ircplom Move _Update.value adaption into class proper. --- 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