import json from abc import ABC, abstractmethod from exceptions import ParameterMissing class LarkMessage(ABC): def __init__(self): ... @abstractmethod def msg_type(self) -> str: ... @abstractmethod def content(self, **kwargs) -> str: ... class LarkTextMessage(LarkMessage): def msg_type(self) -> str: return "text" def content(self, **kwargs) -> str: if "text" not in kwargs: raise ParameterMissing("text") return json.dumps({"text": kwargs["text"]})