From 294ea1d91b5074320a975da5e58be46fa147c295 Mon Sep 17 00:00:00 2001 From: davidh-ssec <david.hoese@ssec.wisc.edu> Date: Tue, 19 Dec 2017 16:09:20 -0600 Subject: [PATCH] Fix symbol renaming in frame generation for legacy db --- aosstower/level_00/parser.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/aosstower/level_00/parser.py b/aosstower/level_00/parser.py index a65a172..a681cb4 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): -- GitLab