Skip to content

Commit 8053ccc

Browse files
author
Benjamin Moody
committed
Raise HeaderSyntaxError for syntax errors in header files.
1 parent c93f315 commit 8053ccc

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

wfdb/io/_header.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,8 @@ def _parse_record_line(record_line):
882882

883883
# Read string fields from record line
884884
match = _rx_record.match(record_line)
885+
if match is None:
886+
raise HeaderSyntaxError('invalid syntax in record line')
885887
(record_fields['record_name'], record_fields['n_seg'],
886888
record_fields['n_sig'], record_fields['fs'],
887889
record_fields['counter_freq'], record_fields['base_counter'],
@@ -946,6 +948,8 @@ def _parse_signal_lines(signal_lines):
946948
# Read string fields from signal line
947949
for ch in range(n_sig):
948950
match = _rx_signal.match(signal_lines[ch])
951+
if match is None:
952+
raise HeaderSyntaxError('invalid syntax in signal line')
949953
(signal_fields['file_name'][ch], signal_fields['fmt'][ch],
950954
signal_fields['samps_per_frame'][ch], signal_fields['skew'][ch],
951955
signal_fields['byte_offset'][ch], signal_fields['adc_gain'][ch],
@@ -1003,6 +1007,8 @@ def _read_segment_lines(segment_lines):
10031007
# Read string fields from signal line
10041008
for i in range(len(segment_lines)):
10051009
match = _rx_segment.match(segment_lines[i])
1010+
if match is None:
1011+
raise HeaderSyntaxError('invalid syntax in segment line')
10061012
(segment_fields['seg_name'][i],
10071013
segment_fields['seg_len'][i]) = match.groups()
10081014

@@ -1013,6 +1019,10 @@ def _read_segment_lines(segment_lines):
10131019
return segment_fields
10141020

10151021

1022+
class HeaderSyntaxError(ValueError):
1023+
"""Invalid syntax found in a WFDB header file."""
1024+
1025+
10161026
def lines_to_file(file_name, write_dir, lines):
10171027
"""
10181028
Write each line in a list of strings to a text file.

0 commit comments

Comments
 (0)