Skip to content

Commit 3b592a8

Browse files
authored
Merge pull request #1763 from h-mayorquin/fix_black_rock_1
Refactor BlackRock spec specific functions
2 parents a1ac529 + 8d20798 commit 3b592a8

File tree

1 file changed

+70
-68
lines changed

1 file changed

+70
-68
lines changed

neo/rawio/blackrockrawio.py

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -188,67 +188,67 @@ def __init__(
188188
# revision of the nsx and nev files to one of the reading routines
189189
# NSX
190190
self._nsx_header_reader = {
191-
"2.1": self._read_nsx_header_variant_a,
192-
"2.2": self._read_nsx_header_variant_b,
193-
"2.3": self._read_nsx_header_variant_b,
194-
"3.0": self._read_nsx_header_variant_b,
191+
"2.1": self._read_nsx_header_spec_v21,
192+
"2.2": self._read_nsx_header_spec_v22_30,
193+
"2.3": self._read_nsx_header_spec_v22_30,
194+
"3.0": self._read_nsx_header_spec_v22_30,
195195
}
196196
self._nsx_dataheader_reader = {
197-
"2.1": self._read_nsx_dataheader_variant_a,
198-
"2.2": self._read_nsx_dataheader_variant_b,
199-
"2.3": self._read_nsx_dataheader_variant_b,
200-
"3.0": self._read_nsx_dataheader_variant_b,
201-
"3.0-ptp": self._read_nsx_dataheader_variant_c,
197+
"2.1": self._read_nsx_dataheader_spec_v21,
198+
"2.2": self._read_nsx_dataheader_spec_v22_30,
199+
"2.3": self._read_nsx_dataheader_spec_v22_30,
200+
"3.0": self._read_nsx_dataheader_spec_v22_30,
201+
"3.0-ptp": self._read_nsx_dataheader_spec_v30_ptp,
202202
}
203203
self._nsx_data_reader = {
204-
"2.1": self._read_nsx_data_variant_a,
205-
"2.2": self._read_nsx_data_variant_b,
206-
"2.3": self._read_nsx_data_variant_b,
207-
"3.0": self._read_nsx_data_variant_b,
208-
"3.0-ptp": self._read_nsx_data_variant_c,
204+
"2.1": self._read_nsx_data_spec_v21,
205+
"2.2": self._read_nsx_data_spec_v22_30,
206+
"2.3": self._read_nsx_data_spec_v22_30,
207+
"3.0": self._read_nsx_data_spec_v22_30,
208+
"3.0-ptp": self._read_nsx_data_spec_v30_ptp,
209209
}
210210
self._nsx_params = {
211-
"2.1": self._get_nsx_param_variant_a,
212-
"2.2": self._get_nsx_param_variant_b,
213-
"2.3": self._get_nsx_param_variant_b,
214-
"3.0": self._get_nsx_param_variant_b,
211+
"2.1": self._get_nsx_param_spec_v21,
212+
"2.2": self._get_nsx_param_spec_v22_30,
213+
"2.3": self._get_nsx_param_spec_v22_30,
214+
"3.0": self._get_nsx_param_spec_v22_30,
215215
}
216216
# NEV
217217
self._nev_header_reader = {
218-
"2.1": self._read_nev_header_variant_a,
219-
"2.2": self._read_nev_header_variant_b,
220-
"2.3": self._read_nev_header_variant_c,
221-
"3.0": self._read_nev_header_variant_c,
218+
"2.1": self._read_nev_header_spec_v21,
219+
"2.2": self._read_nev_header_spec_v22,
220+
"2.3": self._read_nev_header_spec_v30_ptp,
221+
"3.0": self._read_nev_header_spec_v30_ptp,
222222
}
223223
self._nev_data_reader = {
224-
"2.1": self._read_nev_data_variant_a,
225-
"2.2": self._read_nev_data_variant_a,
226-
"2.3": self._read_nev_data_variant_b,
227-
"3.0": self._read_nev_data_variant_c,
224+
"2.1": self._read_nev_data_spec_v21_22,
225+
"2.2": self._read_nev_data_spec_v21_22,
226+
"2.3": self._read_nev_data_spec_v23,
227+
"3.0": self._read_nev_data_spec_v30_ptp,
228228
}
229229
self._waveform_size = {
230-
"2.1": self._get_waveform_size_variant_a,
231-
"2.2": self._get_waveform_size_variant_a,
232-
"2.3": self._get_waveform_size_variant_b,
233-
"3.0": self._get_waveform_size_variant_b,
230+
"2.1": self._get_waveform_size_spec_v21,
231+
"2.2": self._get_waveform_size_spec_v21,
232+
"2.3": self._get_waveform_size_spec_v22_30,
233+
"3.0": self._get_waveform_size_spec_v22_30,
234234
}
235235
self._channel_labels = {
236-
"2.1": self._get_channel_labels_variant_a,
237-
"2.2": self._get_channel_labels_variant_b,
238-
"2.3": self._get_channel_labels_variant_b,
239-
"3.0": self._get_channel_labels_variant_b,
236+
"2.1": self._get_channel_labels_spec_v21,
237+
"2.2": self._get_channel_labels_spec_v22_30,
238+
"2.3": self._get_channel_labels_spec_v22_30,
239+
"3.0": self._get_channel_labels_spec_v22_30,
240240
}
241241
self._nonneural_evdicts = {
242-
"2.1": self._get_nonneural_evdicts_variant_a,
243-
"2.2": self._get_nonneural_evdicts_variant_a,
244-
"2.3": self._get_nonneural_evdicts_variant_b,
245-
"3.0": self._get_nonneural_evdicts_variant_b,
242+
"2.1": self._get_nonneural_evdicts_spec_v21_22,
243+
"2.2": self._get_nonneural_evdicts_spec_v21_22,
244+
"2.3": self._get_nonneural_evdicts_spec_v23,
245+
"3.0": self._get_nonneural_evdicts_spec_v23,
246246
}
247247
self._comment_evdict = {
248-
"2.1": self._get_comment_evdict_variant_a,
249-
"2.2": self._get_comment_evdict_variant_a,
250-
"2.3": self._get_comment_evdict_variant_a,
251-
"3.0": self._get_comment_evdict_variant_a,
248+
"2.1": self._get_comment_evdict_spec_v21_22,
249+
"2.2": self._get_comment_evdict_spec_v21_22,
250+
"2.3": self._get_comment_evdict_spec_v21_22,
251+
"3.0": self._get_comment_evdict_spec_v21_22,
252252
}
253253

254254
def _parse_header(self):
@@ -267,9 +267,11 @@ def _parse_header(self):
267267
self._nev_spec = self._extract_nev_file_spec()
268268

269269
# read nev headers
270-
self._nev_basic_header, self._nev_ext_header = self._nev_header_reader[self._nev_spec]()
270+
header_reader_function = self._nev_header_reader[self._nev_spec]
271+
self._nev_basic_header, self._nev_ext_header = header_reader_function()
271272

272-
self.nev_data = self._nev_data_reader[self._nev_spec]()
273+
nev_reader_function = self._nev_data_reader[self._nev_spec]
274+
self.nev_data = nev_reader_function()
273275
spikes, spike_segment_ids = self.nev_data["Spikes"]
274276

275277
# scan all channel to get number of Unit
@@ -850,7 +852,7 @@ def _extract_nev_file_spec(self):
850852

851853
return spec
852854

853-
def _read_nsx_header_variant_a(self, nsx_nb):
855+
def _read_nsx_header_spec_v21(self, nsx_nb):
854856
"""
855857
Extract nsx header information from a 2.1 .nsx file
856858
"""
@@ -883,7 +885,7 @@ def _read_nsx_header_variant_a(self, nsx_nb):
883885

884886
return nsx_basic_header, nsx_ext_header
885887

886-
def _read_nsx_header_variant_b(self, nsx_nb):
888+
def _read_nsx_header_spec_v22_30(self, nsx_nb):
887889
"""
888890
Extract nsx header information from a 2.2 or 2.3 .nsx file
889891
"""
@@ -964,15 +966,15 @@ def _read_nsx_dataheader(self, nsx_nb, offset):
964966

965967
return packet_header
966968

967-
def _read_nsx_dataheader_variant_a(self, nsx_nb, filesize=None, offset=None):
969+
def _read_nsx_dataheader_spec_v21(self, nsx_nb, filesize=None, offset=None):
968970
"""
969971
Reads None for the nsx data header of file spec 2.1. Introduced to
970972
facilitate compatibility with higher file spec.
971973
"""
972974

973975
return None
974976

975-
def _read_nsx_dataheader_variant_b(
977+
def _read_nsx_dataheader_spec_v22_30(
976978
self,
977979
nsx_nb,
978980
filesize=None,
@@ -1025,7 +1027,7 @@ def _read_nsx_dataheader_variant_b(
10251027

10261028
return data_header
10271029

1028-
def _read_nsx_dataheader_variant_c(
1030+
def _read_nsx_dataheader_spec_v30_ptp(
10291031
self,
10301032
nsx_nb,
10311033
filesize=None,
@@ -1056,7 +1058,7 @@ def _read_nsx_dataheader_variant_c(
10561058

10571059
if not np.all(struct_arr["num_data_points"] == 1):
10581060
# some packets have more than 1 sample. Not actually ptp. Revert to non-ptp variant.
1059-
return self._read_nsx_dataheader_variant_b(nsx_nb, filesize=filesize, offset=offset)
1061+
return self._read_nsx_dataheader_spec_v22_30(nsx_nb, filesize=filesize, offset=offset)
10601062

10611063
# It is still possible there was a data break and the file has multiple segments.
10621064
# We can no longer rely on the presence of a header indicating a new segment,
@@ -1083,7 +1085,7 @@ def _read_nsx_dataheader_variant_c(
10831085
}
10841086
return data_header
10851087

1086-
def _read_nsx_data_variant_a(self, nsx_nb):
1088+
def _read_nsx_data_spec_v21(self, nsx_nb):
10871089
"""
10881090
Extract nsx data from a 2.1 .nsx file
10891091
"""
@@ -1102,7 +1104,7 @@ def _read_nsx_data_variant_a(self, nsx_nb):
11021104

11031105
return data
11041106

1105-
def _read_nsx_data_variant_b(self, nsx_nb):
1107+
def _read_nsx_data_spec_v22_30(self, nsx_nb):
11061108
"""
11071109
Extract nsx data (blocks) from a 2.2, 2.3, or 3.0 .nsx file.
11081110
Blocks can arise if the recording was paused by the user.
@@ -1124,7 +1126,7 @@ def _read_nsx_data_variant_b(self, nsx_nb):
11241126

11251127
return data
11261128

1127-
def _read_nsx_data_variant_c(self, nsx_nb):
1129+
def _read_nsx_data_spec_v30_ptp(self, nsx_nb):
11281130
"""
11291131
Extract nsx data (blocks) from a 3.0 .nsx file with PTP timestamps
11301132
yielding a timestamp per sample. Blocks can arise
@@ -1214,7 +1216,7 @@ def _read_nev_header(self, ext_header_variants):
12141216

12151217
return nev_basic_header, nev_ext_header
12161218

1217-
def _read_nev_header_variant_a(self):
1219+
def _read_nev_header_spec_v21(self):
12181220
"""
12191221
Extract nev header information from a 2.1 .nev file
12201222
"""
@@ -1230,7 +1232,7 @@ def _read_nev_header_variant_a(self):
12301232

12311233
return self._read_nev_header(ext_header_variants)
12321234

1233-
def _read_nev_header_variant_b(self):
1235+
def _read_nev_header_spec_v22(self):
12341236
"""
12351237
Extract nev header information from a 2.2 .nev file
12361238
"""
@@ -1249,7 +1251,7 @@ def _read_nev_header_variant_b(self):
12491251

12501252
return self._read_nev_header(ext_header_variants)
12511253

1252-
def _read_nev_header_variant_c(self):
1254+
def _read_nev_header_spec_v30_ptp(self):
12531255
"""
12541256
Extract nev header information from a 2.3 .nev file
12551257
"""
@@ -1478,7 +1480,7 @@ def _match_nsx_and_nev_segment_ids(self, nsx_nb):
14781480
if len(ev_ids):
14791481
ev_ids[:] = np.vectorize(new_nev_segment_id_mapping.__getitem__)(ev_ids)
14801482

1481-
def _read_nev_data_variant_a(self):
1483+
def _read_nev_data_spec_v21_22(self):
14821484
"""
14831485
Extract nev data from a 2.1 & 2.2 .nev file
14841486
"""
@@ -1488,7 +1490,7 @@ def _read_nev_data_variant_a(self):
14881490

14891491
return self._read_nev_data(nev_data_masks, nev_data_types)
14901492

1491-
def _read_nev_data_variant_b(self):
1493+
def _read_nev_data_spec_v23(self):
14921494
"""
14931495
Extract nev data from a 2.3 .nev file
14941496
"""
@@ -1514,7 +1516,7 @@ def _read_nev_data_variant_b(self):
15141516

15151517
return self._read_nev_data(nev_data_masks, nev_data_types)
15161518

1517-
def _read_nev_data_variant_c(self):
1519+
def _read_nev_data_spec_v30_ptp(self):
15181520
"""
15191521
Extract nev data from a 3.0 .nev file
15201522
"""
@@ -1943,7 +1945,7 @@ def _get_waveforms_dtype(self):
19431945

19441946
return dtype_waveforms
19451947

1946-
def _get_channel_labels_variant_a(self):
1948+
def _get_channel_labels_spec_v21(self):
19471949
"""
19481950
Returns labels for all channels for file spec 2.1
19491951
"""
@@ -1958,7 +1960,7 @@ def _get_channel_labels_variant_a(self):
19581960

19591961
return dict(zip(elids, labels))
19601962

1961-
def _get_channel_labels_variant_b(self):
1963+
def _get_channel_labels_spec_v22_30(self):
19621964
"""
19631965
Returns labels for all channels for file spec 2.2 and 2.3
19641966
"""
@@ -1967,7 +1969,7 @@ def _get_channel_labels_variant_b(self):
19671969

19681970
return dict(zip(elids, labels)) if len(labels) > 0 else None
19691971

1970-
def _get_waveform_size_variant_a(self):
1972+
def _get_waveform_size_spec_v21(self):
19711973
"""
19721974
Returns waveform sizes for all channels for file spec 2.1 and 2.2
19731975
"""
@@ -1978,7 +1980,7 @@ def _get_waveform_size_variant_a(self):
19781980

19791981
return wf_sizes
19801982

1981-
def _get_waveform_size_variant_b(self):
1983+
def _get_waveform_size_spec_v22_30(self):
19821984
"""
19831985
Returns waveform sizes for all channels for file spec 2.3
19841986
"""
@@ -2008,7 +2010,7 @@ def _get_left_sweep_waveforms(self):
20082010

20092011
return wf_left_sweep
20102012

2011-
def _get_nsx_param_variant_a(self, nsx_nb):
2013+
def _get_nsx_param_spec_v21(self, nsx_nb):
20122014
"""
20132015
Returns parameter (param_name) for a given nsx (nsx_nb) for file spec
20142016
2.1.
@@ -2074,7 +2076,7 @@ def _get_nsx_param_variant_a(self, nsx_nb):
20742076
# Returns complete dictionary because then it does not need to be called so often
20752077
return nsx_parameters
20762078

2077-
def _get_nsx_param_variant_b(self, param_name, nsx_nb):
2079+
def _get_nsx_param_spec_v22_30(self, param_name, nsx_nb):
20782080
"""
20792081
Returns parameter (param_name) for a given nsx (nsx_nb) for file spec
20802082
2.2 and 2.3.
@@ -2098,7 +2100,7 @@ def _get_nsx_param_variant_b(self, param_name, nsx_nb):
20982100

20992101
return nsx_parameters[param_name]
21002102

2101-
def _get_nonneural_evdicts_variant_a(self, data):
2103+
def _get_nonneural_evdicts_spec_v21_22(self, data):
21022104
"""
21032105
Defines event types and the necessary parameters to extract them from
21042106
a 2.1 and 2.2 nev file.
@@ -2190,7 +2192,7 @@ def _delete_empty_segments(self):
21902192

21912193
self._nb_segment -= 1
21922194

2193-
def _get_nonneural_evdicts_variant_b(self, data):
2195+
def _get_nonneural_evdicts_spec_v23(self, data):
21942196
"""
21952197
Defines event types and the necessary parameters to extract them from
21962198
a 2.3 nev file.
@@ -2218,7 +2220,7 @@ def _get_nonneural_evdicts_variant_b(self, data):
22182220

22192221
return event_types
22202222

2221-
def _get_comment_evdict_variant_a(self, data):
2223+
def _get_comment_evdict_spec_v21_22(self, data):
22222224
return {
22232225
"comments": {"name": "comments", "field": "comment", "mask": data["packet_id"] == 65535, "desc": "Comments"}
22242226
}

0 commit comments

Comments
 (0)