4.1.0
Installation
Available on PyPi https://pypi.org/project/python-can/4.1.0/
pip install python-can==4.1.0
Changes
Breaking Changes
windows-curses
was moved to optional dependencies (#1395).
Usepip install python-can[viewer]
if you are using thecan.viewer
script on Windows.- The attributes of
can.interfaces.vector.VectorChannelConfig
were renamed
from camelCase to snake_case (#1422).
Features
IO
- The canutils logger preserves message direction (#1244)
and uses common interface names (e.g. can0) instead of just
channel numbers (#1271). - The
can.logger
script accepts the-a, --append
option
to add new data to an existing log file (#1326, #1327, #1361).
Currently only the blf-, canutils- and csv-formats are supported. - All CLI
extra_args
are passed to the bus, logger
and player initialisation (#1366). - Initial support for TRC files (#1217)
Type Annotations
- python-can now includes the
py.typed
marker to support type checking
according to PEP 561 (#1344).
Interface Improvements
- The gs_usb interface can be selected by device index instead
of USB bus/address. Loopback frames are now correctly marked
with theis_rx
flag (#1270). - The PCAN interface can be selected by its device ID instead
of just the channel name (#1346). - The PCAN Bus implementation supports auto bus-off reset (#1345).
- SocketCAN: Make
find_available_interfaces()
find slcanX interfaces (#1369). - Vector: Add xlGetReceiveQueueLevel, xlGenerateSyncPulse and
xlFlushReceiveQueue to xldriver (#1387). - Vector: Raise a CanInitializationError, if the CAN settings can not
be applied according to the arguments ofVectorBus.__init__
(#1426). - Ixxat bus now implements BusState api and detects errors (#1141)
Bug Fixes
- Improve robustness of USB2CAN serial number detection (#1129).
- Fix channel2int conversion (#1268, #1269).
- Fix BLF timestamp conversion (#1266, #1273).
- Fix timestamp handling in udp_multicast on macOS (#1275, #1278).
- Fix failure to initiate the Neousys DLL (#1281).
- Fix AttributeError in IscanError (#1292, #1293).
- Add missing vector devices (#1296).
- Fix error for DLC > 8 in ASCReader (#1299, #1301).
- Set default mode for FileIOMessageWriter to wt instead of rt (#1303).
- Fix conversion for port number from config file (#1309).
- Fix fileno error on Windows (#1312, #1313, #1333).
- Remove redundant
writer.stop()
call that throws error (#1316, #1317). - Detect and cast types of CLI
extra_args
(#1280, #1328). - Fix ASC/CANoe incompatibility due to timestamp format (#1315, #1362).
- Fix MessageSync timings (#1372, #1374).
- Fix file name for compressed files in SizedRotatingLogger (#1382, #1683).
- Fix memory leak in neoVI bus where message_receipts grows with no limit (#1427).
- Raise ValueError if gzip is used with incompatible log formats (#1429).
- Allow restarting of transmission tasks for socketcan (#1440)
Miscellaneous
- Allow ICSApiError to be pickled and un-pickled (#1341)
- Sort interface names in CLI API to make documentation reproducible (#1342)
- Exclude repository-configuration from git-archive (#1343)
- Improve documentation (#1397, #1401, #1405, #1420, #1421, #1434)
- Officially support Python 3.11 (#1423)
- Migrate code coverage reporting from Codecov to Coveralls (#1430)
- Migrate building docs and publishing releases to PyPi from Travis-CI to GitHub Actions (#1433)