diff --git a/aosstower/level_00/parser.py b/aosstower/level_00/parser.py index a65a172e61d4cf4c34673516c0364f19d7991395..a681cb45357eca9129d9bd48b03f9753d5972172 100644 --- a/aosstower/level_00/parser.py +++ b/aosstower/level_00/parser.py @@ -64,17 +64,18 @@ class LineParseError(Exception): raise exc -def _make_frame(data, rename_timestamp=False): +def _make_frame(data, new_symbols=None, rename_timestamp=False): """Construct a frame from a list of tuples. """ frame = {} - for key, value in data: + for idx, (key, value) in enumerate(data): if key in ['stamp', 'timestamp']: frame['stamp' if rename_timestamp else key] = value continue if key in database: try: - frame[key] = database[key].type(value) + new_key = new_symbols[idx] if new_symbols and len(new_symbols) > idx else key + frame[new_key] = database[key].type(value) except (ValueError, TypeError): raise LineParseError("error converting '%s' using %s", value, database[key].type) @@ -218,7 +219,8 @@ def read_frames(source, error_handler=lambda *a: None, tail=False): def loggernet_to_tower(rec_dict, symbol_names): """Convert loggernet record dictionary to our standard naming""" # assume that the next record after the traditional frame is the timestamp - return _make_frame(zip(['timestamp'] + symbol_names, rec_dict.values()), rename_timestamp=True) + new_symbols = ['timestamp'] + symbol_names + return _make_frame(zip(new_symbols, rec_dict.values()), new_symbols, rename_timestamp=True) def ldmp_generator(station_name, tables, symbol_names=ParserV1V2.names):