New error behaviour when calling flush_tx_buffer
for several interface types
#1922
Labels
flush_tx_buffer
for several interface types
#1922
Describe the bug
Due to the addition of
raise NotImplementedError
in theBusABC
class introduced with #1724 by @zariiii9003, trying to callflush_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 ifpython-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 implementingflush_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.
The text was updated successfully, but these errors were encountered: