Skip to content

Commit f8b638e

Browse files
authored
Merge pull request #3103 from h-mayorquin/fix_paths_in_json
Accept paths in `SIJsonEncoder`.
2 parents 4539550 + ec79fb4 commit f8b638e

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

src/spikeinterface/core/core_tools.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ def default(self, obj):
9999
if isinstance(obj, BaseExtractor):
100100
return obj.to_dict()
101101

102+
if isinstance(obj, Path):
103+
return str(obj)
104+
102105
if isinstance(obj, Motion):
103106
return obj.to_dict()
104107

src/spikeinterface/core/tests/test_jsonification.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
from spikeinterface.core.core_tools import SIJsonEncoder
88
from spikeinterface.core.generate import generate_recording, generate_sorting
99

10-
11-
@pytest.fixture(scope="module")
12-
def numpy_generated_recording():
13-
recording = generate_recording()
14-
return recording
10+
from pathlib import Path
1511

1612

1713
@pytest.fixture(scope="module")
@@ -124,8 +120,25 @@ def test_numpy_dtype_alises_encoding():
124120
json.dumps(np.float32, cls=SIJsonEncoder)
125121

126122

127-
def test_recording_encoding(numpy_generated_recording):
128-
recording = numpy_generated_recording
123+
def test_path_encoding(tmp_path):
124+
125+
temporary_path = tmp_path / "a_path_for_this_test"
126+
127+
json.dumps(temporary_path, cls=SIJsonEncoder)
128+
129+
130+
def test_path_as_annotation(tmp_path):
131+
temporary_path = tmp_path / "a_path_for_this_test"
132+
133+
recording = generate_recording()
134+
recording.annotate(path=temporary_path)
135+
136+
json.dumps(recording, cls=SIJsonEncoder)
137+
138+
139+
def test_recording_encoding():
140+
recording = generate_recording()
141+
129142
json.dumps(recording, cls=SIJsonEncoder)
130143

131144

@@ -200,4 +213,4 @@ def test_encoding_numpy_scalars_within_nested_extractors_dict(nested_extractor_d
200213

201214
if __name__ == "__main__":
202215
nested_extractor = nested_extractor()
203-
test_encoding_numpy_scalars_within_nested_extractors(nested_extractor_)
216+
test_encoding_numpy_scalars_within_nested_extractors(nested_extractor)

0 commit comments

Comments
 (0)