Skip to content

MDF4.3#221

Merged
ratal merged 50 commits intomasterfrom
dev
Apr 3, 2026
Merged

MDF4.3#221
ratal merged 50 commits intomasterfrom
dev

Conversation

@ratal
Copy link
Copy Markdown
Owner

@ratal ratal commented Apr 2, 2026

What's New in v4.2

New MDF 4.x Features

  • MDF 4.3 support: new compression algorithms (ZstdSD, LZMA, LZ4) introduced in MDF 4.3
  • VLSC (Variable Length Signal Channel): initial support for variable-length signal data
  • New block types: CL, DS, CU, CV block parsing
  • BOM reading and VD (Value Definition) block support
  • SD block reading fixes

MFX / Compressed File Support

  • MFXZ decompression no longer requires a temporary file on disk

File Finalization

  • Finalization feature: cycle count and block size recalculation for unfinished recordings
  • DL (Data List) block updates for finalization

Bug Fixes

  • Unsorted data groups: bit masking now applied for non-byte-aligned channels
  • Signed integer initialization: fixed stale high-byte bug for 24-bit signed integers in dataRead
  • Integrity checks: multiple fixes for compressed (DZ) and empty data blocks with wrong size calculations
  • Unfinalized DZ blocks: fixed wrong block length calculation
  • Complex data types: fixes for f16 complex, general complex type bugs, and BOM+complex value handling
  • MDF 2: bug fix for MDF 2 file reading
  • Export: various export bug fixes
  • resample(): discard intermediate arrays to reduce memory usage
  • Null timestamp (1970-01-01T00:00:00) no longer raises an exception
  • DG/CG keys changed from sequential integer to file position
  • channel class attribute casing fixed (camelCase)
  • Improved channel extraction in masterChannelList
  • Native endianness check added
  • Byte order handling fixed when returning a DataFrame
  • copy() bug fix
  • KeyError and overflow warning fixes

Python & NumPy Compatibility

  • Python 3.13: Cython dataRead extension updated
  • NumPy 2.x: backwards-compatible fromstring/fromarrays imports
  • Minimum Python version raised to 3.9
  • distutils dependency removed

Resample

  • resample() now accepts interpolation options from scipy.interp1d

Performance

  • Various read-path optimisations
  • Memory usage reduced during large file reads

Packaging & CI

  • GitHub Actions workflows for automated PyPI publishing (Linux x86_64/aarch64, Windows x86_64, macOS x86_64/arm64)
  • pyproject.toml added for PEP 517 build support

Community Contributions

  • Byte order fix when returning DataFrame (#220 — LaurentBlanc73)
  • Data storage fix (#212 — LaurentBlanc73)
  • Improved masterChannelList channel extraction (#213 — LaurentBlanc73)
  • NumPy 2.x import compatibility + camelCase attribute fix (#215 — Pzdrs)
  • Native endianness check and null timestamp fix (cyclichertz)

ratal and others added 30 commits August 29, 2020 11:49
- Recompile for Python 3.13 (fixes undefined _Py_ZeroStruct symbol)
- Fix VLSD/VLSC channels: signal_data_type 6-9 now dispatches to uint
  reader instead of falling through to read_byte
- Fix read_chalf: rewrite as (n_records,2) float16 array to match the
  (2,)f2 native format used for complex32 channels
- Fix complex swap_flag in sorted_data_read: compare against 15/16 not 0/1
- Fix unsorted_data_read4: check Flags & 0b100001 for VLSC compact (bit 5)
- Fix unsorted_read4: initialize temp to raw bytes so byte-array VLSD
  signal types (10-17) don't raise UnboundLocalError
- Replace deprecated np.fromstring with np.frombuffer in read_array
- Use const char* for bit_stream in sorted_data_read

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ratal and others added 20 commits March 30, 2026 21:13
…dded temporary files in non standard loation
…licts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t with setup.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…available)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… with Python 3.13+)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ratal ratal merged commit 8c05c44 into master Apr 3, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant