NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4077 most downloaded on PyPI
ASAM MDF measurement data file parser
Last release 11 days ago
07 Sep 2026
Ships unpredictably
gaps range from 8 days to 5 months
Most releases are documented
notes for 39 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
296 releases · first in 2017
fix crashes triggered by selecting the common axis when channels have been removed from the selection list
fix error when dragging channel groups that contain no channels
One column per quarter.
Nothing published for this version
fix filtering of byte arrays in the tabular window
add copy argument to _Signal.validate_ method
improve robustness to out of file addresses
fix channel unit error when converting from mdf v3 to mdf v4
### Fixes * fix CAN logging extraction * fixes #204 (HDF5 export)
fixes issue #203, #204, #206 and #207
fix attribute error when CAN database could not be loaded (thanks to Julien)
keep channel byte order after the chunk mode access
fix moving the cursor with the arrow keys
fixes issue #185 * add scrambling of embedded attachment data
fix for csv export with time_as_date and single_time_base
fix stand alone builds in appveyor (use canmatrix development branch)
fix working with latest canmatrix code
handle common axis label color depending of the plot background
Nothing published for this version
fix _debug_channel_ utility function
fix export of empty channel groups
### Fixes * fixes #167 * fix documentation for select * fix RTAB conversion ### Stand-alone GUI builds * Linux * Windows
fix for big endian channels that were not byte aligned
avoid warning "QLayout: Attempting to add QLayout "" to QWidget "", which already has a layout"
added _return_names_ argument to AdvancedSearch dialog
fix crash caused by closing the sub-plots
multiple fixes to handling of CAN bus logging measurements
fixes issues #143, #146, #147, #148 and #149
### fixes * don't close or hide Datalyser
use natural sorting in GUI (requires natsort)
fixes #136, #137 , #138, #139, #140
added _raw_ argument to _select_ method
###Fixes
open files using mmap in read-only mode
use period keyboard button to set curve dots in GUI
fix metadata method for v3 blocks
fix handling of channel attachments
minimum Python version is now 3.6
<table> <thead> <tr class="header"> <th>Open file</th> <th>Time [ms]</th> <th>RAM [MB]</th> </tr> </thead> <tbody> <tr class="odd"> <td>asammdf 5.0.0 mdfv3</td> <td><blockquote> <p>307</p> </blockquote></td> <td><blockquote> <p>114</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv3</td> <td><blockquote> <p>966</p> </blockquote></td> <td><blockquote> <p>333</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv3</td> <td><blockquote> <p>872</p> </blockquote></td> <td><blockquote> <p>180</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv3</td> <td><blockquote> <p>429</p> </blockquote></td> <td><blockquote> <p>75</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 5.0.0 mdfv4</td> <td><blockquote> <p>431</p> </blockquote></td> <td><blockquote> <p>127</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv4</td> <td><blockquote> <p>1320</p> </blockquote></td> <td><blockquote> <p>301</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv4</td> <td><blockquote> <p>1192</p> </blockquote></td> <td><blockquote> <p>136</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv4</td> <td><blockquote> <p>1145</p> </blockquote></td> <td><blockquote> <p>77</p> </blockquote></td> </tr> </tbody> </table>
<table> <thead> <tr class="header"> <th>Save file</th> <th>Time [ms]</th> <th>RAM [MB]</th> </tr> </thead> <tbody> <tr class="odd"> <td>asammdf 5.0.0 mdfv3</td> <td><blockquote> <p>493</p> </blockquote></td> <td><blockquote> <p>114</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv3</td> <td><blockquote> <p>515</p> </blockquote></td> <td><blockquote> <p>333</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv3</td> <td><blockquote> <p>545</p> </blockquote></td> <td><blockquote> <p>186</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv3</td> <td><blockquote> <p>2120</p> </blockquote></td> <td><blockquote> <p>82</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 5.0.0 mdfv4</td> <td><blockquote> <p>411</p> </blockquote></td> <td><blockquote> <p>127</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv4</td> <td><blockquote> <p>514</p> </blockquote></td> <td><blockquote> <p>308</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv4</td> <td><blockquote> <p>637</p> </blockquote></td> <td><blockquote> <p>150</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv4</td> <td><blockquote> <p>1476</p> </blockquote></td> <td><blockquote> <p>90</p> </blockquote></td> </tr> </tbody> </table>
<table> <thead> <tr class="header"> <th>Get all channels (36424 calls)</th> <th>Time [ms]</th> <th>RAM [MB]</th> </tr> </thead> <tbody> <tr class="odd"> <td>asammdf 5.0.0 mdfv3</td> <td><blockquote> <p>4617</p> </blockquote></td> <td><blockquote> <p>114</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv3</td> <td><blockquote> <p>1089</p> </blockquote></td> <td><blockquote> <p>345</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv3</td> <td><blockquote> <p>4627</p> </blockquote></td> <td><blockquote> <p>198</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv3</td> <td><blockquote> <p>6309</p> </blockquote></td> <td><blockquote> <p>85</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 5.0.0 mdfv4</td> <td><blockquote> <p>7916</p> </blockquote></td> <td><blockquote> <p>127</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full mdfv4</td> <td><blockquote> <p>997</p> </blockquote></td> <td><blockquote> <p>309</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low mdfv4</td> <td><blockquote> <p>7931</p> </blockquote></td> <td><blockquote> <p>147</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum mdfv4</td> <td><blockquote> <p>9994</p> </blockquote></td> <td><blockquote> <p>87</p> </blockquote></td> </tr> </tbody> </table>
<table> <thead> <tr class="header"> <th>Convert file</th> <th>Time [ms]</th> <th>RAM [MB]</th> </tr> </thead> <tbody> <tr class="odd"> <td>asammdf 5.0.0 v4 to v3</td> <td><blockquote> <p>2541</p> </blockquote></td> <td><blockquote> <p>152</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full v4 to v3</td> <td><blockquote> <p>2571</p> </blockquote></td> <td><blockquote> <p>568</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low v4 to v3</td> <td><blockquote> <p>2576</p> </blockquote></td> <td><blockquote> <p>218</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum v4 to v3</td> <td><blockquote> <p>4946</p> </blockquote></td> <td><blockquote> <p>112</p> </blockquote></td> </tr> </tbody> </table>
<table> <thead> <tr class="header"> <th>Merge files</th> <th>Time [ms]</th> <th>RAM [MB]</th> </tr> </thead> <tbody> <tr class="odd"> <td>asammdf 5.0.0 v3</td> <td><blockquote> <p>5635</p> </blockquote></td> <td><blockquote> <p>176</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full v3</td> <td><blockquote> <p>7528</p> </blockquote></td> <td><blockquote> <p>845</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low v3</td> <td><blockquote> <p>7002</p> </blockquote></td> <td><blockquote> <p>307</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum v3</td> <td><blockquote> <p>8642</p> </blockquote></td> <td><blockquote> <p>118</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 5.0.0 v4</td> <td><blockquote> <p>5438</p> </blockquote></td> <td><blockquote> <p>174</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 full v4</td> <td><blockquote> <p>7868</p> </blockquote></td> <td><blockquote> <p>793</p> </blockquote></td> </tr> <tr class="odd"> <td>asammdf 4.7.11 low v4</td> <td><blockquote> <p>7432</p> </blockquote></td> <td><blockquote> <p>237</p> </blockquote></td> </tr> <tr class="even"> <td>asammdf 4.7.11 minimum v4</td> <td><blockquote> <p>10395</p> </blockquote></td> <td><blockquote> <p>119</p> </blockquote></td> </tr> </tbody> </table>
Nothing published for this version
fix local vcariable 'trucated_integers' referenced before assignement in _as_non_byte_sized_signed_int_
local vcariable 'trucated_integers' referenced before assignement in as_non_byte_sized_signed_int### Fixes * fix issue #126, #125, #121
correctly apply re-sampling raster to invalidation bits
fix handling of vlsd bytearray channel fields of structure channels
Nothing published for this version
Nothing published for this version
fix KeyError in case of invalidation bits
fix handling of non byte align channels
The 4.7 line will be last to support Python version prior to 3.6. From now on only bugfixes will be pushed to it.
The 4.7 line will be last to support Python version prior to 3.6. From now on only bugfixes will be pushed to it.
do not alter comments (XML content) created by other tools (for example CANape display information)
ensure maximum Matlab variable name for .mat export
improve robustness of XML comments parsing
fix big endian handling of channels that have bit offset or non standard size
refactoring of code related to GUI
### Changes * changed _Signal extend_ method
fix documentation for _extend_ method
Nothing published for this version
### Fixes * fix issue #102 * use 4MB fragment size in GUI ### Changes * improve performance of GUI
added _get_group_ method to MDF class
_Signal plot_ method tries to use pyqtgraph before matplotlib
Signal plot method tries to use pyqtgraph before matplotlib
string channels and value-to-text channels can now be plotted
use write fragments for signal data referenced by channels
optimization for saving mf4 files with large channel count and _memory='minimum'_
fix and improve performance for saving nested structures with memory='minimum'
fix appending nested structures
Your coding agent can read these notes before it upgrades. Set up the MCP server →