Coverage for slidge / core / mixins / base.py: 89%

18 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-04-06 05:07 +0000

1from abc import ABC 

2from typing import TYPE_CHECKING, Any 

3 

4from slixmpp import JID 

5 

6from ...util.types import AnySession, MessageOrPresenceTypeVar 

7 

8if TYPE_CHECKING: 

9 from ..gateway import BaseGateway 

10 

11 

12class Base(ABC): 

13 session: AnySession = NotImplemented 

14 xmpp: "BaseGateway" = NotImplemented 

15 

16 jid: JID = NotImplemented 

17 name: str | None = NotImplemented 

18 

19 @property 

20 def user_jid(self) -> JID: 

21 return self.session.user_jid 

22 

23 @property 

24 def user_pk(self) -> int: 

25 return self.session.user_pk 

26 

27 

28class BaseSender(Base): 

29 is_participant: bool = NotImplemented 

30 

31 def _send( 

32 self, 

33 stanza: MessageOrPresenceTypeVar, 

34 **send_kwargs: Any, # noqa:ANN401 

35 ) -> MessageOrPresenceTypeVar: 

36 raise NotImplementedError