@@ -12,7 +12,7 @@ class FieldSpecification(object):
12
12
Class for storing specifications for wfdb record fields
13
13
"""
14
14
def __init__ (self , allowed_types , delimiter , dependency , write_req ,
15
- read_def , write_def ):
15
+ read_default , write_def ):
16
16
# Data types the field (or its elements) can be
17
17
self .allowed_types = allowed_types
18
18
# The text delimiter that preceeds the field if it is a field that gets written to header files.
@@ -22,7 +22,7 @@ def __init__(self, allowed_types, delimiter, dependency, write_req,
22
22
# Whether the field is always required for writing a header (more stringent than origin WFDB library)
23
23
self .write_req = write_req
24
24
# The default value for the field when read if any
25
- self .read_def = read_def
25
+ self .read_default = read_default
26
26
# The default value for the field to fill in before writing if any
27
27
self .write_def = write_def
28
28
@@ -466,7 +466,7 @@ def get_sig_segments(self, sig_name=None):
466
466
Only works if information about the segments has been read in
467
467
"""
468
468
if self .segments is None :
469
- raise Exception ("The MultiRecord's segments must be read in before this method is called. ie. Call rdheader() with rd_segments =True" )
469
+ raise Exception ("The MultiRecord's segments must be read in before this method is called. ie. Call rdheader() with rsegment_fieldsments =True" )
470
470
471
471
# Default value = all signal names.
472
472
if sig_name is None :
@@ -489,7 +489,7 @@ def get_sig_segments(self, sig_name=None):
489
489
# Get the signal names for the entire record
490
490
def get_sig_name (self ):
491
491
if self .segments is None :
492
- raise Exception ("The MultiRecord's segments must be read in before this method is called. ie. Call rdheader() with rd_segments =True" )
492
+ raise Exception ("The MultiRecord's segments must be read in before this method is called. ie. Call rdheader() with rsegment_fieldsments =True" )
493
493
494
494
if self .layout == 'fixed' :
495
495
for i in range (self .n_seg ):
@@ -533,106 +533,109 @@ def get_header_lines(record_name, pb_dir):
533
533
return header_lines , comment_lines
534
534
535
535
536
- # Extract fields from a record line string into a dictionary
537
- def read_rec_line (rec_line ):
536
+ def _read_record_line (record_line ):
537
+ """
538
+ Extract fields from a record line string into a dictionary
538
539
540
+ """
539
541
# Dictionary for record fields
540
- d_rec = {}
542
+ record_fields = {}
541
543
542
544
# Read string fields from record line
543
- (d_rec ['record_name' ], d_rec ['n_seg' ], d_rec ['n_sig' ], d_rec ['fs' ],
544
- d_rec ['counter_freq' ], d_rec ['base_counter' ], d_rec ['sig_len' ],
545
- d_rec ['base_time' ], d_rec ['base_date' ]) = re .findall (rx_record , rec_line )[0 ]
545
+ (record_fields ['record_name' ], record_fields ['n_seg' ],
546
+ record_fields ['n_sig' ], record_fields ['fs' ],
547
+ record_fields ['counter_freq' ], record_fields ['base_counter' ],
548
+ record_fields ['sig_len' ], record_fields ['base_time' ],
549
+ record_fields ['base_date' ]) = re .findall (rx_record , record_line )[0 ]
546
550
547
551
for field in rec_field_specs :
548
- # Replace empty strings with their read defaults (which are mostly None)
549
- if d_rec [field ] == '' :
550
- d_rec [field ] = rec_field_specs [field ].read_def
551
- # Typecast non-empty strings for numerical fields
552
+ # Replace empty strings with their read defaults (which are
553
+ # mostly None)
554
+ if record_fields [field ] == '' :
555
+ record_fields [field ] = rec_field_specs [field ].read_default
556
+ # Typecast non-empty strings for numerical and date/time fields
552
557
else :
553
558
if rec_field_specs [field ].allowed_types is int_types :
554
- d_rec [field ] = int (d_rec [field ])
559
+ record_fields [field ] = int (record_fields [field ])
555
560
# fs may be read as float or int
556
561
elif field == 'fs' :
557
- fs = float (d_rec ['fs' ])
562
+ fs = float (record_fields ['fs' ])
558
563
if round (fs , 8 ) == float (int (fs )):
559
564
fs = int (fs )
560
- d_rec ['fs' ] = fs
565
+ record_fields ['fs' ] = fs
566
+
567
+ return record_fields
561
568
562
- return d_rec
563
569
564
570
# Extract fields from signal line strings into a dictionary
565
- def read_sig_lines ( sig_lines ):
571
+ def _read_signal_lines ( signal_lines ):
566
572
# Dictionary for signal fields
567
- d_sig = {}
573
+ signal_fields = {}
568
574
569
575
# Each dictionary field is a list
570
576
for field in sig_field_specs :
571
- d_sig [field ] = [None ]* len (sig_lines )
577
+ signal_fields [field ] = [None ]* len (signal_lines )
572
578
573
579
# Read string fields from signal line
574
- for i in range (0 , len (sig_lines )):
575
- (d_sig ['file_name' ][i ], d_sig ['fmt' ][i ],
576
- d_sig ['samps_per_frame' ][i ],
577
- d_sig ['skew' ][i ],
578
- d_sig ['byte_offset' ][i ],
579
- d_sig ['adc_gain' ][i ],
580
- d_sig ['baseline' ][i ],
581
- d_sig ['units' ][i ],
582
- d_sig ['adc_res' ][i ],
583
- d_sig ['adc_zero' ][i ],
584
- d_sig ['init_value' ][i ],
585
- d_sig ['checksum' ][i ],
586
- d_sig ['block_size' ][i ],
587
- d_sig ['sig_name' ][i ]) = rx_signal .findall (sig_lines [i ])[0 ]
580
+ for i in range (len (signal_lines )):
581
+ (signal_fields ['file_name' ][i ], signal_fields ['fmt' ][i ],
582
+ signal_fields ['samps_per_frame' ][i ], signal_fields ['skew' ][i ],
583
+ signal_fields ['byte_offset' ][i ], signal_fields ['adc_gain' ][i ],
584
+ signal_fields ['baseline' ][i ], signal_fields ['units' ][i ],
585
+ signal_fields ['adc_res' ][i ], signal_fields ['adc_zero' ][i ],
586
+ signal_fields ['init_value' ][i ], signal_fields ['checksum' ][i ],
587
+ signal_fields ['block_size' ][i ],
588
+ signal_fields ['sig_name' ][i ]) = rx_signal .findall (signal_lines [i ])[0 ]
588
589
589
590
for field in sig_field_specs :
590
591
# Replace empty strings with their read defaults (which are mostly None)
591
592
# Note: Never set a field to None. [None]* n_sig is accurate, indicating
592
593
# that different channels can be present or missing.
593
- if d_sig [field ][i ] == '' :
594
- d_sig [field ][i ] = sig_field_specs [field ].read_def
594
+ if signal_fields [field ][i ] == '' :
595
+ signal_fields [field ][i ] = sig_field_specs [field ].read_default
595
596
596
597
# Special case: missing baseline defaults to ADCzero if present
597
- if field == 'baseline' and d_sig ['adc_zero' ][i ] != '' :
598
- d_sig ['baseline' ][i ] = int (d_sig ['adc_zero' ][i ])
598
+ if field == 'baseline' and signal_fields ['adc_zero' ][i ] != '' :
599
+ signal_fields ['baseline' ][i ] = int (signal_fields ['adc_zero' ][i ])
599
600
# Typecast non-empty strings for numerical fields
600
601
else :
601
602
if sig_field_specs [field ].allowed_types is int_types :
602
- d_sig [field ][i ] = int (d_sig [field ][i ])
603
+ signal_fields [field ][i ] = int (signal_fields [field ][i ])
603
604
elif sig_field_specs [field ].allowed_types is float_types :
604
- d_sig [field ][i ] = float (d_sig [field ][i ])
605
+ signal_fields [field ][i ] = float (signal_fields [field ][i ])
605
606
# Special case: gain of 0 means 200
606
- if field == 'adc_gain' and d_sig ['adc_gain' ][i ] == 0 :
607
- d_sig ['adc_gain' ][i ] = 200.
607
+ if field == 'adc_gain' and signal_fields ['adc_gain' ][i ] == 0 :
608
+ signal_fields ['adc_gain' ][i ] = 200.
608
609
609
- return d_sig
610
+ return signal_fields
610
611
611
612
612
- # Extract fields from segment line strings into a dictionary
613
- def read_seg_lines (seg_lines ):
613
+ def _read_segment_lines (segment_lines ):
614
+ """
615
+ Extract fields from segment line strings into a dictionary
614
616
615
- # Dictionary for signal fields
616
- d_seg = {}
617
+ """
618
+ # Dictionary for segment fields
619
+ segment_fields = {}
617
620
618
621
# Each dictionary field is a list
619
622
for field in seg_field_specs :
620
- d_seg [field ] = [None ]* len (seg_lines )
623
+ segment_fields [field ] = [None ]* len (segment_lines )
621
624
622
625
# Read string fields from signal line
623
- for i in range (0 , len (seg_lines )):
624
- (d_seg ['seg_name' ][i ], d_seg ['seg_len' ][i ]) = rx_segment .findall (seg_lines [i ])[0 ]
626
+ for i in range (0 , len (segment_lines )):
627
+ (segment_fields ['seg_name' ][i ], segment_fields ['seg_len' ][i ]) = rx_segment .findall (segment_lines [i ])[0 ]
625
628
626
629
for field in seg_field_specs :
627
630
# Replace empty strings with their read defaults (which are mostly None)
628
- if d_seg [field ][i ] == '' :
629
- d_seg [field ][i ] = seg_field_specs [field ].read_def
631
+ if segment_fields [field ][i ] == '' :
632
+ segment_fields [field ][i ] = seg_field_specs [field ].read_default
630
633
# Typecast non-empty strings for numerical field
631
634
else :
632
635
if field == 'seg_len' :
633
- d_seg [field ][i ] = int (d_seg [field ][i ])
636
+ segment_fields [field ][i ] = int (segment_fields [field ][i ])
634
637
635
- return d_seg
638
+ return segment_fields
636
639
637
640
638
641
def lines_to_file (file_name , write_dir , lines ):
0 commit comments