From: Christian Heller Date: Tue, 5 Aug 2025 11:04:32 +0000 (+0200) Subject: Sort out dataclasses Mixins on _IrcConnection. X-Git-Url: https://plomlompom.com/repos/booking/%7B%7Bdb.prefix%7D%7D/%7B%7B%20web_path%20%7D%7D/day_todos?a=commitdiff_plain;p=ircplom Sort out dataclasses Mixins on _IrcConnection. --- diff --git a/ircplom/client.py b/ircplom/client.py index 0d755c2..5453afe 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -2,7 +2,7 @@ # built-ins from abc import ABC, abstractmethod from base64 import b64encode -from dataclasses import dataclass +from dataclasses import dataclass, InitVar from getpass import getuser from threading import Thread from typing import Callable, Optional @@ -32,12 +32,14 @@ class ClientEvent(AffectiveEvent, ClientIdMixin): 'To affect Client identified by ClientIdMixin.' -class _IrcConnection(BaseIrcConnection): +@dataclass +class _IrcConnection(BaseIrcConnection, ClientIdMixin): + hostname: InitVar[str] + port: InitVar[int] - def __init__(self, client_id: str, **kwargs) -> None: - # TODO: find out why I can't just ClientIdMixin here - self.client_id = client_id - super().__init__(**kwargs) + def __post_init__(self, hostname, port, **kwargs) -> None: + super().__init__(hostname=hostname, port=port, q_out=self.q_out, + **kwargs) def _make_recv_event(self, msg: IrcMessage) -> ClientEvent: # pylint: disable=unexpected-keyword-arg # confused by client_id=