Skip to content

4.1.0

Compare
Choose a tag to compare
@hardbyte hardbyte released this 24 Nov 09:42

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).
    Use pip install python-can[viewer] if you are using the can.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 the is_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 of VectorBus.__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)