hardbyte / hardbyte/python-can
New error behaviour when calling `flush_tx_buffer` for several interface types
- 主要语言
- Python
- 星标
- 1.6k
- 派生
- 697
- PR 合并指标
- 30 天内没有已合并 PR
描述
### Describe the bug
Due to the addition of `raise NotImplementedError` in the `BusABC` class introduced with https://github.com/hardbyte/python-can/pull/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.
贡献指南
评估
这个 Issue 还没有评估数据。