@@ -650,8 +650,7 @@ def _get_signal_t_start(self, block_index, seg_index, stream_index):
650650 return self ._sigs_t_starts [nsx_nb ][seg_index ]
651651
652652 @staticmethod
653- def _create_mmap_view (fid , dtype , offset , num_samples , num_channels = None ,
654- packet_size = None , item_offset = 0 ):
653+ def _create_mmap_view (fid , dtype , offset , num_samples , num_channels = None , packet_size = None , item_offset = 0 ):
655654 """
656655 Create an np.ndarray view over a raw mmap buffer from an open file.
657656
@@ -1271,15 +1270,17 @@ def _parse_nsx_data_v22_v30(self, spec, nsx_nb):
12711270 data_offset = current_offset + header .dtype .itemsize
12721271 timestamp = header ["timestamp" ]
12731272
1274- parsed_data_headers .append ({
1275- "timestamp" : timestamp ,
1276- "memmap_kwargs" : {
1277- "filename" : filename ,
1278- "dtype" : "int16" ,
1279- "offset" : data_offset ,
1280- "num_samples" : num_samples ,
1281- },
1282- })
1273+ parsed_data_headers .append (
1274+ {
1275+ "timestamp" : timestamp ,
1276+ "memmap_kwargs" : {
1277+ "filename" : filename ,
1278+ "dtype" : "int16" ,
1279+ "offset" : data_offset ,
1280+ "num_samples" : num_samples ,
1281+ },
1282+ }
1283+ )
12831284
12841285 # Jump to next block
12851286 data_size_bytes = num_samples * channels * 2 # int16 = 2 bytes
@@ -1432,13 +1433,15 @@ def _segment_nsx_data(self, parsed_data_headers, nsx_nb):
14321433 # Case 1: Multiple blocks (Standard format) - each block is a segment
14331434 if len (parsed_data_headers ) > 1 :
14341435 for block_info in parsed_data_headers :
1435- segments .append ({
1436- "timestamp" : block_info ["timestamp" ],
1437- "nb_data_points" : block_info ["memmap_kwargs" ]["num_samples" ],
1438- "header" : 1 , # Standard format has headers
1439- "offset_to_data_block" : None , # Not needed
1440- "memmap_kwargs" : block_info ["memmap_kwargs" ],
1441- })
1436+ segments .append (
1437+ {
1438+ "timestamp" : block_info ["timestamp" ],
1439+ "nb_data_points" : block_info ["memmap_kwargs" ]["num_samples" ],
1440+ "header" : 1 , # Standard format has headers
1441+ "offset_to_data_block" : None , # Not needed
1442+ "memmap_kwargs" : block_info ["memmap_kwargs" ],
1443+ }
1444+ )
14421445
14431446 # Case 2: Single block - check if PTP (has ptp_timestamps_memmap_kwargs) or simple
14441447 elif len (parsed_data_headers ) == 1 :
@@ -1510,32 +1513,36 @@ def _segment_nsx_data(self, parsed_data_headers, nsx_nb):
15101513 seg_samples_offset = base_samples_offset + int (start ) * packet_size
15111514 seg_ts_offset = base_ts_offset + int (start ) * packet_size
15121515
1513- segments .append ({
1514- "timestamp" : None , # PTP timestamps read on demand
1515- "nb_data_points" : seg_num_samples ,
1516- "header" : None , # PTP has no headers
1517- "offset_to_data_block" : None ,
1518- "memmap_kwargs" : {
1519- ** samples_kw ,
1520- "offset" : seg_samples_offset ,
1521- "num_samples" : seg_num_samples ,
1522- },
1523- "timestamps_memmap_kwargs" : {
1524- ** ts_kw ,
1525- "offset" : seg_ts_offset ,
1526- "num_samples" : seg_num_samples ,
1527- },
1528- })
1516+ segments .append (
1517+ {
1518+ "timestamp" : None , # PTP timestamps read on demand
1519+ "nb_data_points" : seg_num_samples ,
1520+ "header" : None , # PTP has no headers
1521+ "offset_to_data_block" : None ,
1522+ "memmap_kwargs" : {
1523+ ** samples_kw ,
1524+ "offset" : seg_samples_offset ,
1525+ "num_samples" : seg_num_samples ,
1526+ },
1527+ "timestamps_memmap_kwargs" : {
1528+ ** ts_kw ,
1529+ "offset" : seg_ts_offset ,
1530+ "num_samples" : seg_num_samples ,
1531+ },
1532+ }
1533+ )
15291534
15301535 # V2.1 or single block standard format: no segmentation needed
15311536 else :
1532- segments .append ({
1533- "timestamp" : block_info ["timestamp" ],
1534- "nb_data_points" : block_info ["memmap_kwargs" ]["num_samples" ],
1535- "header" : None ,
1536- "offset_to_data_block" : None ,
1537- "memmap_kwargs" : block_info ["memmap_kwargs" ],
1538- })
1537+ segments .append (
1538+ {
1539+ "timestamp" : block_info ["timestamp" ],
1540+ "nb_data_points" : block_info ["memmap_kwargs" ]["num_samples" ],
1541+ "header" : None ,
1542+ "offset_to_data_block" : None ,
1543+ "memmap_kwargs" : block_info ["memmap_kwargs" ],
1544+ }
1545+ )
15391546
15401547 return segments
15411548
@@ -1820,8 +1827,7 @@ def _match_nsx_and_nev_segment_ids(self, nsx_nb):
18201827 # Nonempty segments are those containing at least 2 samples
18211828 # These have to be able to be mapped to nev
18221829 nonempty_nsx_segment_indices = [
1823- seg_index for seg_index , seg in enumerate (self ._nsx_data_header [nsx_nb ])
1824- if seg ["nb_data_points" ] > 1
1830+ seg_index for seg_index , seg in enumerate (self ._nsx_data_header [nsx_nb ]) if seg ["nb_data_points" ] > 1
18251831 ]
18261832 nonempty_nsx_segments = [
18271833 self ._nsx_data_header [nsx_nb ][seg_index ] for seg_index in nonempty_nsx_segment_indices
0 commit comments