From 332e1dc7b461f31698c568f3fdaa01e7f2f722f4 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 10 Jul 2025 15:39:25 +0200 Subject: [PATCH] Refactor placement of .conn_idx attributes. --- ircplom/irc_conn.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ircplom/irc_conn.py b/ircplom/irc_conn.py index 30dcaa8..87e608c 100644 --- a/ircplom/irc_conn.py +++ b/ircplom/irc_conn.py @@ -23,6 +23,14 @@ _IRCSPEC_TAG_ESCAPES = ((r'\:', ';'), (r'\\', '\\')) +class ConnIdxMixin: + 'Collects a Connection ID at .conn_idx.' + + def __init__(self, conn_idx: int, **kwargs) -> None: + super().__init__(**kwargs) + self.conn_idx = conn_idx + + @dataclass class LoginNames: 'Collects the names needed on server connect for USER, NICK commands.' @@ -37,12 +45,8 @@ class InitConnectEvent(Event, PayloadMixin): payload: tuple[str, LoginNames] -class ConnEvent(Event): - 'Event with connection ID at .conn_idx' - - def __init__(self, conn_idx: int, **kwargs) -> None: - super().__init__(**kwargs) - self.conn_idx = conn_idx +class ConnEvent(Event, ConnIdxMixin): + 'Event with .conn_idx.' class InitConnWindowEvent(ConnEvent, PayloadMixin): @@ -76,13 +80,9 @@ class SendEvent(ConnEvent, PayloadMixin): payload: 'IrcMessage' -class BroadcastConnMixin(BroadcastMixin): +class BroadcastConnMixin(BroadcastMixin, ConnIdxMixin): 'Provides .broadcast_conn on classes that have .conn_idx defined.' - def __init__(self, conn_idx: int, **kwargs) -> None: - super().__init__(**kwargs) - self.conn_idx = conn_idx - def broadcast_conn[E: ConnEvent](self, event_class: type[E], *args, **kwargs -- 2.30.2