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