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
+
1
107
Version 2.2.1 (2018-07-12)
2
108
=====
3
109
@@ -14,7 +120,7 @@ Version 2.2.0 (2018-06-30)
14
120
* Added synchronized (thread-safe) Bus variant.
15
121
* context manager support for the Bus class.
16
122
* 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 )
18
124
19
125
Version 2.1.0 (2018-02-17)
20
126
=====
@@ -34,7 +140,7 @@ Version 2.0.0 (2018-01-05
34
140
35
141
After an extended baking period we have finally tagged version 2.0.0!
36
142
37
- Quite a few major Changes from v1.x:
143
+ Quite a few major changes from v1.x:
38
144
39
145
* New interfaces:
40
146
* Vector
0 commit comments