Skip to content

Commit c5584e7

Browse files
authored
Merge pull request #223 from maksteel/unicode_219
ignores non-utf8 chars in the header
2 parents cd053f9 + 7f81eb7 commit c5584e7

File tree

5 files changed

+21
-1
lines changed

5 files changed

+21
-1
lines changed

sample-data/test_generator_2.dat

2.58 MB
Binary file not shown.

sample-data/test_generator_2.edf

2.58 MB
Binary file not shown.

sample-data/test_generator_2.hea

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
test_generator_2 12 1 600 12:44:02 10/12/2009
2+
test_generator_2.dat 16x200 32.7675/uV 15 0 3276 0 0 squarewave
3+
test_generator_2.dat 16x200 32.7675/uV 15 0 -3276 480 0 ramp
4+
test_generator_2.dat 16x200 32.7675/uV 15 0 3276 -1920 0 pulse
5+
test_generator_2.dat 16x200 32.7675/uV 15 0 0 21000 0 ECG
6+
test_generator_2.dat 16x200 32.7675/uV 15 0 2752 -12878 0 noise
7+
test_generator_2.dat 16x200 32.7675/uV 15 0 102 0 0 sine 1 Hz
8+
test_generator_2.dat 16x200 32.7675/uV 15 0 814 0 0 sine 8 Hz
9+
test_generator_2.dat 16x200 32.7675/uV 15 0 864 0 0 sine 8.5 Hz
10+
test_generator_2.dat 16x200 32.7675/� 15 0 1487 0 0 sine 15 Hz
11+
test_generator_2.dat 16x200 32.7675/� 15 0 1668 0 0 sine 17 Hz
12+
test_generator_2.dat 16x200 32.7675/uV 15 0 3276 0 0 sine 50 Hz
13+
test_generator_2.dat 16x51 32767.5 15 0 12331 29678 0 EDF Annotations

tests/test_record.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,13 @@ def test_4d(self):
411411

412412
assert np.array_equal(sig_round, sig_target)
413413

414+
def test_header_with_non_utf8(self):
415+
"""
416+
Ignores non-utf8 characters in the header part.
417+
"""
418+
record = wfdb.rdrecord("sample-data/test_generator_2")
419+
sig_units_target = ['uV', 'uV', 'uV', 'uV', 'uV', 'uV', 'uV', 'uV', 'mV', 'mV', 'uV', 'mV']
420+
assert record.units.__eq__(sig_units_target)
414421

415422
@classmethod
416423
def tearDownClass(cls):

wfdb/io/_header.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ def _read_header_lines(base_record_name, dir_name, pn_dir):
826826

827827
# Read local file
828828
if pn_dir is None:
829-
with open(os.path.join(dir_name, file_name), 'r') as fp:
829+
with open(os.path.join(dir_name, file_name), 'r', errors='ignore') as fp:
830830
# Record line followed by signal/segment lines if any
831831
header_lines = []
832832
# Comment lines

0 commit comments

Comments
 (0)