@@ -389,7 +389,15 @@ def __init__(
389389
390390 progress = kwargs.get("progress", None)
391391
392- self._column_storage = False
392+ if self.version >= "4.20":
393+ self._column_storage = kwargs.get("column_storage", False)
394+ if self._column_storage:
395+ self._use_ld_blocks = True
396+ else:
397+ self._use_ld_blocks = kwargs.get("use_ld_blocks", False)
398+ else:
399+ self._column_storage = False
400+ self._use_ld_blocks = False
393401
394402 self._units_map = {}
395403 self._mapped_file = None
@@ -448,11 +456,6 @@ def __init__(
448456 self.identification = FileIdentificationBlock(version=version)
449457 self.version: str = version
450458
451- if self.version >= "4.20":
452- self._column_storage = kwargs.get("column_storage", False)
453- else:
454- self._column_storage = False
455-
456459 self.name = Path("__new__.mf4")
457460
458461 self._parent: MDF | None = None
@@ -529,6 +532,7 @@ def _read(
529532
530533 if self.version >= "4.20":
531534 self._column_storage = self._kwargs.get("column_storage", False)
535+
532536 else:
533537 self._column_storage = False
534538
@@ -4082,7 +4086,7 @@ def append(
40824086 np.packbits(array(invalidation_bits_list).T).reshape((cycles_nr, invalidation_bytes_nr))
40834087 ).ravel()
40844088
4085- if self.version < "4.20" :
4089+ if not self._use_ld_blocks :
40864090 fields.append((bytes_array, invalidation_bytes_nr))
40874091
40884092 for ch in gp.channels:
@@ -4107,7 +4111,6 @@ def append(
41074111 # data group
41084112 gp.sorted = True
41094113
4110-
41114114 data_block = data_block_from_arrays(fields, cycles_nr, THREAD_COUNT)
41124115 size = len(data_block)
41134116 data_block_view = memoryview(data_block)
@@ -4117,7 +4120,7 @@ def append(
41174120 record_size = offset + invalidation_bytes_nr
41184121
41194122 if size:
4120- if self.version < "4.20" :
4123+ if not self._use_ld_blocks :
41214124 block_size = 32 * 1024 * 1024 // record_size * record_size
41224125
41234126 count = ceil(size / block_size)
@@ -6537,7 +6540,7 @@ def extend(self, index: int, signals: Sequence[tuple[NDArray[Any], NDArray[np.bo
65376540 np.packbits(array(inval_bits).T).reshape((cycles_nr, invalidation_bytes_nr))
65386541 ).ravel()
65396542
6540- if self.version < "4.20" :
6543+ if not self._use_ld_blocks :
65416544 fields.append((inval_bits_vals, invalidation_bytes_nr))
65426545
65436546 samples_bytes = data_block_from_arrays(fields, added_cycles, THREAD_COUNT)
@@ -6552,7 +6555,7 @@ def extend(self, index: int, signals: Sequence[tuple[NDArray[Any], NDArray[np.bo
65526555 record_size = gp.channel_group.samples_byte_nr + gp.channel_group.invalidation_bytes_nr
65536556
65546557 if size:
6555- if self.version < "4.20" :
6558+ if not self._use_ld_blocks :
65566559 block_size = 32 * 1024 * 1024 // record_size * record_size
65576560
65586561 count = ceil(size / block_size)
@@ -6582,7 +6585,7 @@ def extend(self, index: int, signals: Sequence[tuple[NDArray[Any], NDArray[np.bo
65826585
65836586 else:
65846587 raw_size = size
6585- data = lz_compress(samples , store_size=True)
6588+ data = lz_compress(samples_bytes , store_size=True)
65866589 size = len(data)
65876590 stream.write(data)
65886591
0 commit comments