From d4e21ce64863865ec880767d8d3e3f9eac079068 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Tue, 5 Aug 2025 13:04:32 +0200 Subject: [PATCH] Sort out dataclasses Mixins on _IrcConnection. --- ircplom/client.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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= -- 2.30.2