Description
In #1724, the can.listener.Listener.stop()
method was decorated as an @abstractmethod
, without any further explanation. This seems to work alright within the python-can codebase, but other dependent projects will get in trouble if they don't implement that method on derived classes. At the very least should this API change be documented prominently.
This actually causes trouble with e.g. https://github.com/christiansandberg/canopen/, see https://github.com/christiansandberg/canopen/blob/713f005af8a6787a4ff54a26f55fa6736f86abaf/canopen/network.py#L346
Expected behavior
This API change should be clearly documented OR reverted, going back to the empty default implementation.
Additional context
OS and version: Linux Ubuntu 22.04
Python version: 3.11.6
python-can version: v4.3.1-16-g7dba4490 (current main branch)
python-can interface/s (if applicable): does not matter
Example script to reproduce
import can
class MessageListener(can.Listener):
def on_message_received(self, msg):
pass
MessageListener()
# TypeError: Can't instantiate abstract class MessageListener with abstract method stop