From 3dc57290dbde0aeaa5048f2301ee75015a93fe26 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Mon, 29 Dec 2025 15:43:44 +0100 Subject: [PATCH 1/2] Test IBL extractors tests failing for PI update --- src/spikeinterface/extractors/tests/test_iblextractors.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spikeinterface/extractors/tests/test_iblextractors.py b/src/spikeinterface/extractors/tests/test_iblextractors.py index 972a8e7bb0..56d01e38cf 100644 --- a/src/spikeinterface/extractors/tests/test_iblextractors.py +++ b/src/spikeinterface/extractors/tests/test_iblextractors.py @@ -76,8 +76,8 @@ def test_offsets(self): def test_probe_representation(self): probe = self.recording.get_probe() - expected_probe_representation = "Probe - 384ch - 1shanks" - assert repr(probe) == expected_probe_representation + expected_probe_representation = "Probe - 384ch" + assert expected_probe_representation in repr(probe) def test_property_keys(self): expected_property_keys = [ From 7eb562c56fa3a35322718f078b438d33a6f6188e Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Thu, 9 Apr 2026 10:22:28 +0200 Subject: [PATCH 2/2] Open Ephys: find root folder before looking for timestamps --- .../extractors/neoextractors/openephys.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/spikeinterface/extractors/neoextractors/openephys.py b/src/spikeinterface/extractors/neoextractors/openephys.py index 5ccbb2d053..f421d285f5 100644 --- a/src/spikeinterface/extractors/neoextractors/openephys.py +++ b/src/spikeinterface/extractors/neoextractors/openephys.py @@ -224,6 +224,8 @@ def __init__( experiment_names: str | list | None = None, all_annotations: bool = False, ): + folder_path = Path(folder_path) + # Handle experiment_names deprecation if experiment_names is not None: warnings.warn( @@ -336,8 +338,15 @@ def __init__( if sample_shifts is not None: self.set_property("inter_sample_shift", sample_shifts) - # load synchronized timestamps and set_times to recording - recording_folder = Path(folder_path) / record_node + # folder_path can point to different levels of the OE folder structure + # (root, record node, experiment, or recording). We need to find the root folder + # in order to load the sync timestamps and set them as times to the recording. + if record_node in folder_path.parts: + root_index = len(folder_path.parts) - folder_path.parts.index(record_node) - 1 + root_folder = folder_path.parents[root_index] + else: + root_folder = folder_path + recording_folder = root_folder / record_node stream_folders = [] for segment_index, rec_id in enumerate(rec_ids): stream_folder = (