Skip to content

Commit 9cf6b69

Browse files
committed
Load event data only on demand and when not already cached
1 parent 4eb5fc1 commit 9cf6b69

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

neo/rawio/plexon2rawio/plexon2rawio.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ def _parse_header(self):
176176
# event channels are characterized by (name, id, type), with type in ['event', 'epoch']
177177
channel_name = echannel_info.m_Name.decode()
178178
event_channels.append((channel_name, echannel_info.m_Channel, 'event'))
179-
self._event_channel_cache[channel_name] = self.pl2reader.pl2_get_digital_channel_data_by_name(channel_name)
180179

181180
event_channels = np.array(event_channels, dtype=_event_channel_dtype)
182181

@@ -452,6 +451,10 @@ def _event_count(self, block_index, seg_index, event_channel_index):
452451
channel_header = self.header['event_channels'][event_channel_index]
453452
channel_name = channel_header['name']
454453

454+
# loading event channel data on demand when not already cached
455+
if channel_name not in self._event_channel_cache:
456+
self._event_channel_cache[channel_name] = self.pl2reader.pl2_get_digital_channel_data_by_name(channel_name)
457+
455458
event_times, values = self._event_channel_cache[channel_name]
456459

457460
return len(event_times)
@@ -465,6 +468,10 @@ def _get_event_timestamps(self, block_index, seg_index, event_channel_index, t_s
465468
channel_header = self.header['event_channels'][event_channel_index]
466469
channel_name = channel_header['name']
467470

471+
# loading event channel data on demand when not already cached
472+
if channel_name not in self._event_channel_cache:
473+
self._event_channel_cache[channel_name] = self.pl2reader.pl2_get_digital_channel_data_by_name(channel_name)
474+
468475
event_times, labels = self._event_channel_cache[channel_name]
469476
labels = np.asarray(labels, dtype='U')
470477

0 commit comments

Comments
 (0)