-
Couldn't load subscription status.
- Fork 654
Description
Describe the bug
Due to the addition of raise NotImplementedError in the BusABC class introduced with #1724 by @zariiii9003, trying to call flush_tx_buffer() throws an exception when called for any interface type that doesn't explicitly implement this.
There are several interface types in python-can which don't, including e.g. socketcan.
This breaks other tools which relied on the previous behaviour of "doing nothing" when flush_tx_buffer() was called on one of these interfaces.
To Reproduce
Call flush_tx_buffer() on an interface type that doesn't explicitly implement this method.
I noticed this because the tool pydronecan no longer works for socketcan if python-can is installed on the system.
Expected behavior
I expect the old behaviour where flushing does nothing. This can easily be done by removing the raise line, or more complicated, by implementing flush_tx_buffer() with a pass for all interface types in this repo where flushing is irrelevant.
If behavour was like this from the beginning, I would be OK with raising error. However, I think it's problematic when previous versions didn't behave like this, causing problems for tools like pydronecan. The behaviour of interfaces like this should be kept stable.
Additional context
This problem exists for every version after the PR linked above was merged. All releases after 4.4.0 are affected.