from abc import ABC, abstractmethod class IMultiselectCommunicator(ABC): """Communicator helper class that ensures both the client and multistream module will follow the same multistream protocol, which is necessary for them to work.""" @abstractmethod async def write(self, msg_str: str) -> None: """ Write message to stream. :param msg_str: message to write """ @abstractmethod async def read(self) -> str: """Reads message from stream until EOF."""