Skip to content

Releases: hardbyte/python-can

v4.1.0a2

18 Nov 06:35
be774db
Compare
Choose a tag to compare
v4.1.0a2 Pre-release
Pre-release
4.1.0-a2 version bump

4.1.0-alpha1

16 Nov 11:12
7713748
Compare
Choose a tag to compare
4.1.0-alpha1 Pre-release
Pre-release

Test of whether Github actions will upload to pypi

4.1.0-alpha0

15 Nov 07:26
3bd28bc
Compare
Choose a tag to compare
4.1.0-alpha0 Pre-release
Pre-release

What's Changed

4.0.0

19 Feb 00:15
485e71a
Compare
Choose a tag to compare

TL;DR: This release includes a ton of improvements from 2.5 years of development! 🎉 Test thoroughly after switching.

For more than two years, there was no major release of python-can.
However, development was very much active over most of this time, and many parts were switched out and improved.
Over this time, over 530 issues and PRs have been resolved or merged, and discussions took place in even more.
Statistics of the final diff: About 200 files changed due to ~22k additions and ~7k deletions from more than thirty contributors.

This changelog diligently lists the major changes but does not promise to be the complete list of changes.
Therefore, users are strongly advised to thoroughly test their programs against this new version.
Re-reading the documentation for your interfaces might be helpful too as limitations and capabilities might have changed or are more explicit.
While we did try to avoid breaking changes, in some cases it was not feasible and in particular, many implementation details have changed.

A massive thank you to Felix Divo for preparing this release, and to the many many contributors.

Major features

New interfaces

Improved interfaces

  • socketcan
    • Support for multiple Cyclic Messages in Tasks (#610)
    • Socketcan crash when attempting to stop CyclicSendTask with same arbitration ID (#605, #638, #720)
    • Relax restriction of arbitration ID uniqueness for CyclicSendTask (#721, #785, #930)
    • Add nanosecond resolution time stamping to socketcan (#938, #1015)
    • Add support for changing the loopback flag (#960)
    • Socketcan timestamps are missing sub-second precision (#1021, #1029)
    • Add parameter to ignore CAN error frames (#1128)
  • socketcan_ctypes
    • Removed and replaced by socketcan after deprecation period
  • socketcan_native
    • Removed and replaced by socketcan after deprecation period
  • vector
    • Add chip state API (#635)
    • Add methods to handle non message events (#708)
    • Implement XLbusParams (#718)
    • Add support for VN8900 xlGetChannelTime function (#732, #733)
    • Add vector hardware config popup (#774)
    • Fix Vector CANlib treatment of empty app name (#796, #814)
    • Make VectorError pickleable (#848)
    • Add methods get_application_config(), set_application_config() and set_timer_rate() to VectorBus (#849)
    • Interface arguments are now lowercase (#858)
    • Fix errors using multiple Vector devices (#898, #971, #977)
    • Add more interface information to channel config (#917)
    • Improve timestamp accuracy on Windows (#934, #936)
    • Fix error with VN8900 (#1184)
    • Add static typing (#1229)
  • PCAN
    • Do not incorrectly reset CANMsg.MSGTYPE on remote frame (#659, #681)
    • Add support for error frames (#711)
    • Added keycheck for windows platform for better error message (#724)
    • Added status_string method to return simple status strings (#725)
    • Fix timestamp timezone offset (#777, #778)
    • Add Cygwin support (#840)
    • Update PCAN basic Python file to February 7, 2020 (#929)
    • Fix compatibility with the latest macOS SDK (#947, #948, #957, #976)
    • Allow numerical channel specifier (#981, #982)
    • macOS: Try to find libPCBUSB.dylib before loading it (#983, #984)
    • Disable command PCAN_ALLOW_ERROR_FRAMES on macOS (#985)
    • Force english error messages (#986, #993, #994)
    • Add set/get device number (#987)
    • Timestamps are silently incorrect on Windows without uptime installed (#1053, #1093)
    • Implement check for minimum version of pcan library (#1065, #1188)
    • Handle case where uptime is imported successfully but returns None (#1102, #1103)
  • slcan
    • Fix bitrate setting (#691)
    • Fix fileno crash on Windows (#924)
  • ics_neovi
    • Filter out Tx error messages (#854)
    • Adding support for send timeout (#855)
    • Raising more precise API error when set bitrate fails (#865)
    • Avoid flooding the logger with many errors when they are the same (#1125)
    • Omit the transmit exception cause for brevity (#1086)
    • Raise ValueError if message data is over max frame length (#1177, #1181)
    • Setting is_error_frame message property (#1189)
  • ixxat
    • Raise exception on busoff in recv() (#856)
    • Add support for 666 kbit/s bitrate (#911)
    • Add function to list hwids of available devices (#926)
    • Add CAN FD support (#1119)
  • seeed
    • Fix fileno crash on Windows (#902)
  • kvaser
    • Improve timestamp accuracy on Windows (#934, #936)
  • usb2can
    • Fix "Error 8" on Windows and provide better error messages (#989)
  • serial
    • Fix "TypeError: cannot unpack non-iterable NoneType" and more robust error handling (#1000, #1010)
  • canalystii
    • Fix is_extended_id (#1006)
    • Fix transmitting onto a busy bus (#1114)
    • Replace binary library with python driver (#726, #1127)

Other API changes and improvements

Other Bugfixes

  • BLF PDU padding (#459)
  • stop_all_periodic_tasks skipping every other task (#634, #637, #645)
  • Preserve capitalization when reading config files (#702, #1062)
  • ASCReader: Skip J1939Tp messages (#701)
  • Fix crash in Canutils Log Reader when parsing RTR frames (#713)
  • Various problems with the installation of the library
  • ASCWriter: Fix date format to show correct day of month (#754)
  • Fixes that some BLF files can't be read ( #763, #765)
  • Seek for start of object instead of calculating it (#786, #803, #806)
  • Only import winreg when on Windows (#800, #802)
  • Find the correct Reader/Writer independently of the file extension case (#895)
  • RecursionError when unpickling message object (#804, #885, #904)
  • Move "filelock" to neovi dependencies (#943)
  • Bus() with "fd" parameter as type bool always resolved to fd-enabled configuration (#954, #956)
  • Asyncio code hits error due to deprecated loop parameter (#1005, #1013)
  • Catch time before 1970 in ASCReader (#1034)
  • Fix a bug where error handlers were not called correctly (#1116)
  • Improved user interface of viewer script (#1118)
  • Correct app_name argument in logger (#1151)
  • Calling stop_all_periodic_tasks() in BusABC.shutdown() and all interfaces call it on shutdown (#1174)
  • Timing configurations do not allow int (#1175)
  • Some smaller bugfixes are not listed here since the problems were never part of a proper release

Behind the scenes & Quality assurance

  • We publish both source distributions (sdist) and binary wheels (bdist_wheel) (#1059, #1071)
  • Many interfaces were partly rewritten to modernize the code or to better handle errors
  • Performance improvements
  • Dependencies have changed
  • Derive type information in Sphinx docs directly from type hints (#654)
  • Better documentation in many, many places; This includes the examples, README and python-can developer resources
  • Add issue templates (#1008, #1017, #1018, #1178)
  • Many continuous integration (CI) discussions & improvements (for example: #951, #940, #1032)
    • Use the [mypy](http...
Read more

4.0.0rc0

04 Feb 20:13
a2c0128
Compare
Choose a tag to compare
4.0.0rc0 Pre-release
Pre-release

This is the first release candidate for version 4.0.0. It includes a ton of improvements from 2.5 years of development! 🎉

Test thoroughly after switching and please report any issues that you experience while testing this pre-release.

Also, have a look at the complete CHANGELOG.

The documentation of the develop branch can be viewed here.

4.0.0 Dev 2

23 Apr 21:33
Compare
Choose a tag to compare
4.0.0 Dev 2 Pre-release
Pre-release

Development release of python-can 4.0.0.

4.0.0 Dev 1

20 Apr 09:55
13c0e75
Compare
Choose a tag to compare
4.0.0 Dev 1 Pre-release
Pre-release

Development release of python-can 4.0.0.

Note: This was not released to PyPI.

3.3.5 Dev release

11 Oct 19:57
Compare
Choose a tag to compare
3.3.5 Dev release Pre-release
Pre-release

Test release to fix #520

Version 3.3.4

04 Oct 19:53
faed6e9
Compare
Choose a tag to compare

Last planned release with Python2 support! 🎆

  • #916 Vector: Skip channels without CAN support
  • #846 Use inter-process mutex to prevent concurrent neoVI device open.
  • #901 Fix iteration in Bus.stop_all_periodic_tasks
  • #850 Fix socket.error is a deprecated alias of OSError used on Python versions lower than 3.3.
  • #879 Updating incorrect api documentation.
  • #885 Fix recursion message in Message.getattr
  • #845 Fix socketcan issue

3.3.4 Beta Release

06 Aug 00:02
Compare
Choose a tag to compare
3.3.4 Beta Release Pre-release
Pre-release

Last call for Python2 support.

  • #850 Fix socket.error is a deprecated alias of OSError used on Python versions lower than 3.3.
  • #846 Use inter-process mutex to prevent concurrent neoVI device open.
  • #879 Updating incorrect api documentation.
  • #885 Fix recursion message in Message.getattr
  • #845 Fix socketcan issue