Skip to content

Commit 92a3d45

Browse files
authored
Merge pull request #3933 from h-mayorquin/improve_frame_slicing_assertion
More informative errors in frame slicing
2 parents 25df708 + ba07ef4 commit 92a3d45

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

src/spikeinterface/core/frameslicerecording.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,18 @@ class FrameSliceRecording(BaseRecording):
2727
def __init__(self, parent_recording, start_frame=None, end_frame=None):
2828
channel_ids = parent_recording.get_channel_ids()
2929

30-
assert parent_recording.get_num_segments() == 1, "FrameSliceRecording only works with one segment"
30+
num_segments = parent_recording.get_num_segments()
31+
assert num_segments == 1, f"FrameSliceRecording only works with one segment but found {num_segments}"
3132

32-
parent_size = parent_recording.get_num_samples(segment_index=0)
33-
if start_frame is None:
34-
start_frame = 0
35-
else:
36-
assert 0 <= start_frame < parent_size
37-
38-
if end_frame is None:
39-
end_frame = parent_size
40-
else:
41-
assert (
42-
0 < end_frame <= parent_size
43-
), f"'end_frame' must be fewer than number of samples in parent: {parent_size}"
33+
samples_in_recording = parent_recording.get_num_samples(segment_index=0)
34+
start_frame = start_frame or 0
35+
end_frame = end_frame or samples_in_recording
4436

45-
assert end_frame > start_frame, "'start_frame' must be smaller than 'end_frame'!"
37+
assert start_frame >= 0, f"{start_frame=} must be positive"
38+
assert start_frame < end_frame, f"{start_frame=} must be smaller than 'end_frame' {end_frame=}!"
39+
assert (
40+
end_frame <= samples_in_recording
41+
), f"{end_frame=} must be smaller than or equal to {samples_in_recording=}"
4642

4743
BaseRecording.__init__(
4844
self,
@@ -53,7 +49,7 @@ def __init__(self, parent_recording, start_frame=None, end_frame=None):
5349

5450
# link recording segment
5551
parent_segment = parent_recording._recording_segments[0]
56-
sub_segment = FrameSliceRecordingSegment(parent_segment, int(start_frame), int(end_frame))
52+
sub_segment = FrameSliceRecordingSegment(parent_segment, start_frame=int(start_frame), end_frame=int(end_frame))
5753
self.add_recording_segment(sub_segment)
5854

5955
# copy properties and annotations

0 commit comments

Comments
 (0)