1+ Version 3.0.0
2+ ====
3+
4+ Major features
5+ --------------
6+
7+ * Adds support for developing `asyncio` applications with `python-can` more easily. This can be useful
8+ when implementing protocols that handles simultaneous connections to many nodes since you can write
9+ synchronous looking code without handling multiple threads and locking mechanisms. #388
10+ * New can viewer terminal application. (`python -m can.viewer`) #390
11+ * More formally adds task management responsibility to the `Bus`. By default tasks created with
12+ `bus.send_periodic` will have a reference held by the bus - this means in many cases the user
13+ doesn't need to keep the task in scope for their periodic messages to continue being sent. If
14+ this behavior isn't desired pass `store_task=False` to the `send_periodic` method. Stop all tasks
15+ by calling the bus's new `stop_all_periodic_tasks` method. #412
16+
17+
18+ Breaking changes
19+ ----------------
20+
21+ * Interfaces should no longer override `send_periodic` and instead implement
22+ `_send_periodic_internal` to allow the Bus base class to manage tasks. #426
23+ * writing to closed writers is not supported any more (it was supported only for some)
24+ * the file in the reader/writer is now always stored in the attribute uniformly called `file`, and not in
25+ something like `fp`, `log_file` or `output_file`. Changed the name of the first parameter of the
26+ read/writer constructors from `filename` to `file`.
27+
28+
29+ Other notable changes
30+ ---------------------
31+
32+ * can.Message class updated #413
33+ - Addition of a `Message.equals` method.
34+ - Deprecate id_type in favor of is_extended_id
35+ - Initializer parameter extended_id deprecated in favor of is_extended_id
36+ - documentation, testing and example updates
37+ - Addition of support for various builtins: __repr__, __slots__, __copy__
38+ * IO module updates to bring consistency to the different CAN message writers and readers. #348
39+ - context manager support for all readers and writers
40+ - they share a common super class called `BaseIOHandler`
41+ - all file handles can now be closed with the `stop()` method
42+ - the table name in `SqliteReader`/`SqliteWriter` can be adjusted
43+ - append mode added in `CSVWriter` and `CanutilsLogWriter`
44+ - [file-like](https://docs.python.org/3/glossary.html#term-file-like-object) and
45+ [path-like](https://docs.python.org/3/glossary.html#term-path-like-object) objects can now be passed to
46+ the readers and writers (except to the Sqlite handlers)
47+ - add a `__ne__()` method to the `Message` class (this was required by the tests)
48+ - added a `stop()` method for `BufferedReader`
49+ - `SqliteWriter`: this now guarantees that all messages are being written, exposes some previously internal metrics
50+ and only buffers messages up to a certain limit before writing/committing to the database.
51+ - the unused `header_line` attribute from `CSVReader` has been removed
52+ - privatized some attributes that are only to be used internally in the classes
53+ - the method `Listener.on_message_received()` is now abstract (using `@abc.abstractmethod`)
54+ * Start testing against Python 3.7 #380
55+ * All scripts have been moved into `can/scripts`. #370, #406
56+ * Added support for additional sections to the config #338
57+ * Code coverage reports added. #346, #374
58+ * Bug fix to thread safe bus. #397
59+
60+ General fixes, cleanup and docs changes: (#347, #348, #367, #368, #370, #371, #373, #420, #417, #419, #432)
61+
62+ Backend Specific Changes
63+ ------------------------
64+
65+ 3rd party interfaces
66+ ~~~~~~~~~~~~~~~~~~~~
67+
68+ * Deprecated `python_can.interface` entry point instead use `can.interface`. #389
69+
70+ neovi
71+ ~~~~~
72+
73+ * Added support for CAN-FD #408
74+ * Fix issues checking if bus is open. #381
75+ * Adding multiple channels support. #415
76+
77+ nican
78+ ~~~~~
79+
80+ * implements reset instead of custom `flush_tx_buffer`. #364
81+
82+ pcan
83+ ~~~~
84+
85+ * now supported on OSX. #365
86+
87+
88+ serial
89+ ~~~~~~
90+
91+ * Removed TextIOWrapper from serial. #383
92+ * switch to `serial_for_url` enabling using remote ports via `loop://`, ``socket://` and `rfc2217://` URLs. #393
93+ * hardware handshake using `rtscts` kwarg #402
94+
95+ socketcan
96+ ~~~~~~~~~
97+
98+ * socketcan tasks now reuse a bcm socket #404, #425, #426,
99+ * socketcan bugfix to receive error frames #384
100+
101+ vector
102+ ~~~~~~
103+
104+ * Vector interface now implements `_detect_available_configs`. #362
105+ * Added support to select device by serial number. #387
106+
1107Version 2.2.1 (2018-07-12)
2108=====
3109
@@ -14,7 +120,7 @@ Version 2.2.0 (2018-06-30)
14120* Added synchronized (thread-safe) Bus variant.
15121* context manager support for the Bus class.
16122* Dropped support for Python 3.3 (officially reached end-of-life in Sept. 2017)
17- * Deprecated the old `CAN` module, please use the newer `can` entry point (will be removed in version 2.4 )
123+ * Deprecated the old `CAN` module, please use the newer `can` entry point (will be removed in an upcoming major version )
18124
19125Version 2.1.0 (2018-02-17)
20126=====
@@ -34,7 +140,7 @@ Version 2.0.0 (2018-01-05
34140
35141After an extended baking period we have finally tagged version 2.0.0!
36142
37- Quite a few major Changes from v1.x:
143+ Quite a few major changes from v1.x:
38144
39145* New interfaces:
40146 * Vector
0 commit comments