Skip to content

Commit 3b84ee3

Browse files
authored
Merge branch 'main' into better_error_in_load
2 parents 4016bd0 + e4fa25a commit 3b84ee3

File tree

5 files changed

+35
-8
lines changed

5 files changed

+35
-8
lines changed

src/spikeinterface/core/base.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import weakref
88
import json
99
import pickle
10-
import os
1110
import random
1211
import string
1312
from packaging.version import parse
@@ -956,13 +955,14 @@ def save_to_folder(
956955
folder.mkdir(parents=True, exist_ok=False)
957956

958957
# dump provenance
959-
provenance_file = folder / f"provenance.json"
960958
if self.check_serializability("json"):
959+
provenance_file = folder / f"provenance.json"
960+
self.dump(provenance_file)
961+
elif self.check_serializability("pickle"):
962+
provenance_file = folder / f"provenance.pkl"
961963
self.dump(provenance_file)
962964
else:
963-
provenance_file.write_text(
964-
json.dumps({"warning": "the provenace is not json serializable!!!"}), encoding="utf8"
965-
)
965+
warnings.warn("The extractor is not serializable to file. The provenance will not be saved.")
966966

967967
self.save_metadata_to_folder(folder)
968968

@@ -1029,7 +1029,6 @@ def save_to_zarr(
10291029
cached: ZarrExtractor
10301030
Saved copy of the extractor.
10311031
"""
1032-
import zarr
10331032
from .zarrextractors import read_zarr
10341033

10351034
save_kwargs.pop("format", None)

src/spikeinterface/core/generate.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1803,6 +1803,8 @@ def __init__(
18031803
)
18041804
self.add_recording_segment(recording_segment)
18051805

1806+
# to discuss: maybe we could set json serializability to False always
1807+
# because templates could be large!
18061808
if not sorting.check_serializability("json"):
18071809
self._serializability["json"] = False
18081810
if parent_recording is not None:

src/spikeinterface/extractors/extractorlist.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,21 @@
116116
event_extractor_full_list += neo_event_extractors_list
117117

118118
snippets_extractor_full_list = [NpySnippetsExtractor, WaveClusSnippetsExtractor]
119+
120+
recording_extractor_full_dict = {}
121+
for rec_class in recording_extractor_full_list:
122+
# here we get the class name, remove "Recording" and "Extractor" and make it lower case
123+
rec_class_name = rec_class.__name__.replace("Recording", "").replace("Extractor", "").lower()
124+
recording_extractor_full_dict[rec_class_name] = rec_class
125+
126+
sorting_extractor_full_dict = {}
127+
for sort_class in sorting_extractor_full_list:
128+
# here we get the class name, remove "Extractor" and make it lower case
129+
sort_class_name = sort_class.__name__.replace("Sorting", "").replace("Extractor", "").lower()
130+
sorting_extractor_full_dict[sort_class_name] = sort_class
131+
132+
event_extractor_full_dict = {}
133+
for event_class in event_extractor_full_list:
134+
# here we get the class name, remove "Extractor" and make it lower case
135+
event_class_name = event_class.__name__.replace("Event", "").replace("Extractor", "").lower()
136+
event_extractor_full_dict[event_class_name] = event_class

src/spikeinterface/extractors/neoextractors/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
)
3737
from .spike2 import Spike2RecordingExtractor, read_spike2
3838
from .spikegadgets import SpikeGadgetsRecordingExtractor, read_spikegadgets
39-
from .spikeglx import SpikeGLXRecordingExtractor, read_spikeglx
39+
from .spikeglx import SpikeGLXRecordingExtractor, SpikeGLXEventExtractor, read_spikeglx, read_spikeglx_event
4040
from .tdt import TdtRecordingExtractor, read_tdt
4141

4242
from .neo_utils import get_neo_streams, get_neo_num_blocks
@@ -73,4 +73,9 @@
7373
Plexon2SortingExtractor,
7474
]
7575

76-
neo_event_extractors_list = [AlphaOmegaEventExtractor, OpenEphysBinaryEventExtractor, Plexon2EventExtractor]
76+
neo_event_extractors_list = [
77+
AlphaOmegaEventExtractor,
78+
OpenEphysBinaryEventExtractor,
79+
Plexon2EventExtractor,
80+
SpikeGLXEventExtractor,
81+
]

src/spikeinterface/generation/drift_tools.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,9 @@ def __init__(
458458

459459
self.set_probe(drifting_templates.probe, in_place=True)
460460

461+
# templates are too large, we don't serialize them to JSON
462+
self._serializability["json"] = False
463+
461464
self._kwargs = {
462465
"sorting": sorting,
463466
"drifting_templates": drifting_templates,

0 commit comments

Comments
 (0)