Compatibility Notes
This will be the last release compatible with Python 3.8, which has already reached end-of-life state since 2024.
Enhancements
- Add all public API parts to all by @friederschueler in #462
- Export PdoMap and PdoVariable classes in pdo module by @acolomb in #464
- Raise ValueError for unknown formats in the import/export OD APIs by @erlend-aasland in #476
- Expose and improve the docstrings of
export_od
andimport_id
by @erlend-aasland in #473 - Bail early if an unsupported doctype is passed to export_od() by @erlend-aasland in #486
- Improve the RemoteNode.load_configuration() docs by @erlend-aasland in #477
- Add support for loading DCF configuration to remote node by @meifonglow in #427
- CI: Build docs in CI by @erlend-aasland in #498
- Make Network.notifier timeouts customizable (fixes #530) by @acolomb in #536
- Skip the "highest subindex" entry when iterating over SdoRecord by @acolomb in #538
- Add a dummy object to designate "uninitialized" networks (fixes #511) by @acolomb in #525
- Add mypy CI and config (ref #358) by @erlend-aasland in #518
- Type annotate everywhere Network is used by @sveinse in #575
- Add some type annotations for the nmt module by @acolomb in #586
- Gracefully handle readonly entries in PdoMap.save() (fixes #541) by @acolomb in #593
Bug Fixes
- build: Explicitly specify packages to install (fixes #467) by @sveinse in #468
- Ensure proper close after open in export_od by @sveinse in #469
- Adapt to renamed "bustype" parameter on can.Bus by @acolomb in #489
- Save the passed node ID to the resulting OD in
import_od()
by @erlend-aasland in #484 - Gracefully handle missing Baudrate setting in DCF by @acolomb in #492
- Add back PdoBase.export() dependency (canmatrix) by @erlend-aasland in #493
- Ensure NmtBase.state always returns a string by @erlend-aasland in #506
- Fix some type checker errors in network module by @acolomb in #534
- Fix SDO writes of empty strings by @willson556 in #551
- Fix multiple associations and removals of networks by @sveinse in #573
- Correctly apply offset to custom timestamp value (fixes #563) by @sveinse in #576
- Fix check for retransmission of discarded block segments by @samsamfire in #546
- Avoid truncating unknown types in SDO upload (fixes #436) by @acolomb in #591
- Fix OD item lookup evaluating object's length (fixes #588) by @sveinse in #589
- Abort SDO server upload when the object has zero length by @acolomb in #587
- Prevent warnings if SDO setup fails by @sveinse in #590
- sdo.client: Add missing abort messages by @acolomb in #594
- eds: Avoid float formatting in BaudRate_xxx export keys by @acolomb in #606
- build: Fix package auto-discovery (ref #468) by @acolomb in #608
Code Cleaning and Modernization
- doc: Clean up and modernize sphinx configuration (fixes #463) by @acolomb in #465
- Increase export_eds() test coverage by @erlend-aasland in #474
- Remove temporary files created in EDS tests by @erlend-aasland in #482
- Add tests for bitrate parsing in import_eds() by @erlend-aasland in #495
- README: Add formatting and amend doc build instructions by @erlend-aasland in #494
- Git: correctly ignore docs build directory by @erlend-aasland in #499
- Tests: establish test/util.py and test/test_nmt.py by @erlend-aasland in #503
- Add tests for NMT base and NMT master by @erlend-aasland in #504
- Tests: harden TestNetwork by @erlend-aasland in #505
- Tests: make sure temporary files are pre-closed by @erlend-aasland in #507
- Purge import hack from network.py by @erlend-aasland in #510
- Tests: improve coverage of Network by @erlend-aasland in #515
- Tests: harden TestNetwork and TestNmt even more by @erlend-aasland in #508
- Tests: improve coverage of NodeScanner by @erlend-aasland in #517
- Make node scanner tests more deterministic by @erlend-aasland in #526
- Remove unused NodeScanner.active member by @erlend-aasland in #527
- Tests: improve EMCY coverage by @erlend-aasland in #529
- Docs: remove unused Sphinx config 'html_static_path' by @erlend-aasland in #521
- Tests: improve SYNC coverage by @erlend-aasland in #531
- Tests: harden test_emcy_consumer_wait by @erlend-aasland in #532
- CI: Add requirements-dev.txt and add pip cache by @erlend-aasland in #533
- Tests: speed up test suite by @erlend-aasland in #537
- Tests: Verify some basic SDO record and array assumptions by @acolomb in #539
- Updated debian packaging for reprepro by @tonybaltovski in #557
- sdo: Define constants for all standardized abort codes by @acolomb in #596
New Contributors
- @erlend-aasland made their first contribution in #476
- @willson556 made their first contribution in #551
- @tonybaltovski made their first contribution in #557
Full Changelog: v2.3.0...v2.4.1