You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Listener.stop() method breaks API since declared abstract #1770
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 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
importcanclassMessageListener(can.Listener):
defon_message_received(self, msg):
passMessageListener()
# TypeError: Can't instantiate abstract class MessageListener with abstract method stop
You are correct, it must be mentioned in the changelog #1759. Another reason not to release it as 4.3.2, but 4.4.0.
Thanks for testing the pre-release!
Activity
zariiii9003 commentedon Apr 24, 2024
You are correct, it must be mentioned in the changelog #1759. Another reason not to release it as 4.3.2, but 4.4.0.
Thanks for testing the pre-release!
acolomb commentedon Apr 24, 2024
You're welcome. I actually only switched to the main branch for investigating a fix for #1771.
Will make a PR in the canopen package to deal with this change, to hopefully stay compatible right after your v4.4.0 release.