@@ -882,6 +882,8 @@ def _parse_record_line(record_line):
882
882
883
883
# Read string fields from record line
884
884
match = _rx_record .match (record_line )
885
+ if match is None :
886
+ raise HeaderSyntaxError ('invalid syntax in record line' )
885
887
(record_fields ['record_name' ], record_fields ['n_seg' ],
886
888
record_fields ['n_sig' ], record_fields ['fs' ],
887
889
record_fields ['counter_freq' ], record_fields ['base_counter' ],
@@ -946,6 +948,8 @@ def _parse_signal_lines(signal_lines):
946
948
# Read string fields from signal line
947
949
for ch in range (n_sig ):
948
950
match = _rx_signal .match (signal_lines [ch ])
951
+ if match is None :
952
+ raise HeaderSyntaxError ('invalid syntax in signal line' )
949
953
(signal_fields ['file_name' ][ch ], signal_fields ['fmt' ][ch ],
950
954
signal_fields ['samps_per_frame' ][ch ], signal_fields ['skew' ][ch ],
951
955
signal_fields ['byte_offset' ][ch ], signal_fields ['adc_gain' ][ch ],
@@ -1003,6 +1007,8 @@ def _read_segment_lines(segment_lines):
1003
1007
# Read string fields from signal line
1004
1008
for i in range (len (segment_lines )):
1005
1009
match = _rx_segment .match (segment_lines [i ])
1010
+ if match is None :
1011
+ raise HeaderSyntaxError ('invalid syntax in segment line' )
1006
1012
(segment_fields ['seg_name' ][i ],
1007
1013
segment_fields ['seg_len' ][i ]) = match .groups ()
1008
1014
@@ -1013,6 +1019,10 @@ def _read_segment_lines(segment_lines):
1013
1019
return segment_fields
1014
1020
1015
1021
1022
+ class HeaderSyntaxError (ValueError ):
1023
+ """Invalid syntax found in a WFDB header file."""
1024
+
1025
+
1016
1026
def lines_to_file (file_name , write_dir , lines ):
1017
1027
"""
1018
1028
Write each line in a list of strings to a text file.
0 commit comments