Skip to content

Commit 93be425

Browse files
Peter N. SteinmetzPeter N. Steinmetz
authored andcommitted
Move extract header text method to NlxHeader static.
1 parent d9ae54f commit 93be425

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

neo/rawio/neuralynxrawio/nlxheader.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import datetime
21
import dateutil
32
from packaging.version import Version
43
import os
@@ -176,9 +175,8 @@ def __init__(self, filename, props_only=False):
176175
:param props_only: if true, will not try and read time and date or check start
177176
"""
178177
super(OrderedDict, self).__init__()
179-
with open(filename, "rb") as f:
180-
txt_header = f.read(NlxHeader.HEADER_SIZE)
181-
txt_header = txt_header.strip(b"\x00").decode("latin-1")
178+
179+
txt_header = NlxHeader.get_text_header(filename)
182180

183181
# must start with 8 # characters
184182
if not props_only and not txt_header.startswith("########"):
@@ -194,6 +192,16 @@ def __init__(self, filename, props_only=False):
194192
if not props_only:
195193
self.readTimeDate(txt_header)
196194

195+
@staticmethod
196+
def get_text_header(filename):
197+
"""
198+
Accessory method to extract text in header. Useful for subclasses.
199+
:param filename: name of Neuralynx file
200+
"""
201+
with open(filename, "rb") as f:
202+
txt_header = f.read(NlxHeader.HEADER_SIZE)
203+
return txt_header.strip(b"\x00").decode("latin-1")
204+
197205
def read_properties(self, filename, txt_header):
198206
"""
199207
Read properties from header and place in OrderedDictionary which this object is.

neo/test/rawiotest/test_neuralynxrawio.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -386,10 +386,6 @@ def test_neuraview2(self):
386386
self.assertEqual(datetime.datetime(2015,12,14, 15,58,32), hdr['recording_closed'])
387387

388388
# left in for possible future header tests
389-
def get_text_header(self, filename):
390-
with open(filename, "rb") as f:
391-
txt_header = f.read(NlxHeader.HEADER_SIZE)
392-
return txt_header.strip(b"\x00").decode("latin-1")
393389

394390
# left in for possible future header tests
395391
def check_dateutil_parse(self, hdrTxt, openPat, closePat, openDate, closeDate):
@@ -408,7 +404,7 @@ def check_dateutil_parse(self, hdrTxt, openPat, closePat, openDate, closeDate):
408404
def test_datetime_parsing(self):
409405
# neuraview2
410406
filename = self.get_local_path("neuralynx/Neuraview_v2/original_data/NeuraviewEventMarkers-sample.nev")
411-
txt_header = self.get_text_header(filename)
407+
txt_header = NlxHeader.get_text_header(filename)
412408
self.check_dateutil_parse(txt_header, NlxHeader.openDatetime1_pat, NlxHeader.closeDatetime1_pat,
413409
datetime.datetime(2015,12,14, 15,58,32),
414410
datetime.datetime(2015,12,14, 15,58,32))
@@ -420,7 +416,7 @@ def test_datetime_parsing(self):
420416

421417
# Cheetah 5.7.4 'inProps'
422418
filename = self.get_local_path("neuralynx/Cheetah_v5.7.4/original_data/CSC1.ncs")
423-
txt_header = self.get_text_header(filename)
419+
txt_header = NlxHeader.get_text_header(filename)
424420
self.check_dateutil_parse(txt_header, NlxHeader.openDatetime2_pat, NlxHeader.closeDatetime2_pat,
425421
datetime.datetime(2017,2,16, 17,56,4),
426422
datetime.datetime(2017,2,16, 18,1,18))
@@ -432,7 +428,7 @@ def test_datetime_parsing(self):
432428

433429
# Cheetah 4.0.2
434430
filename = self.get_local_path("neuralynx/Cheetah_v4.0.2/original_data/CSC14_trunc.Ncs")
435-
txt_header = self.get_text_header(filename)
431+
txt_header = NlxHeader.get_text_header(filename)
436432
self.check_dateutil_parse(txt_header, NlxHeader.openDatetime1_pat, None,
437433
datetime.datetime(2003,10,4, 10,3,0, 578000),
438434
None)
@@ -443,7 +439,7 @@ def test_datetime_parsing(self):
443439

444440
# Cheetah 5.4.0 'openClosedInHeader'
445441
filename = self.get_local_path("neuralynx/Cheetah_v5.4.0/original_data/CSC5_trunc.Ncs")
446-
txt_header = self.get_text_header(filename)
442+
txt_header = NlxHeader.get_text_header(filename)
447443
self.check_dateutil_parse(txt_header, NlxHeader.openDatetime1_pat, NlxHeader.closeDatetime1_pat,
448444
datetime.datetime(2001,1,1, 0,0,0, 0),
449445
datetime.datetime(2001,1,1, 0,0,0, 0))

0 commit comments

Comments
 (0)